TDengine too many open files

too many open files 是比较常见的报错,尤其使用TDengine 3.0 集群时,大概率会遇到。这个报错很简单,但要想顺利解决,却涉及到很多知识点。

目录

    • 知识点:fs.nr_open
    • 知识点:file-max & fs.file-nr
    • 知识点:limits.conf
    • 知识点:LimitNOFILE
    • 知识点:ulimit
    • 知识点:prlimit

知识点:fs.nr_open

官方说明:This denotes the maximum number of file-handles a process can allocate. Default value is 1024*1024 (1048576) which should be enough for most machines. Actual limit depends on RLIMIT_NOFILE resource limit.

单个进程能够打开的最大句柄数量,大部分同学看到too many open files 时想到的参数。这个参数时操作系统全局变量,天花板级的参数,决定了进程能够打开最大句柄数量。可动态修改,最大值:2147483584(x64环境)

sysctl -w fs.nr_open=2147483584

知识点:file-max & fs.file-nr

官方说明: The value in file-max denotes the maximum number of file- handles that the Linux kernel will allocate. When you get lots of error messages about running out of file handles, you might want to increase this limit.

Historically,the kernel was able to allocate file handles dynamically,
but not to free them again. The three values in file-nr denote the
number of allocated file handles, the number of allocated but unused
file handles, and the maximum number of file handles. Linux 2.6 and
later always reports 0 as the number of free file handles – this is
not an error, it just means that the number of allocated file handles
exactly matches the number of used file handles.

我们可用通过查询fs.file-nr,来获得当前系统已打开的句柄数量和支持的最大数量。当我们修改fs.nr_open 时会发现 fs.file-nr中的最大值并没有变化,因为最大值是有 fs.file-max 控制的。如果我们单独修改 fs.nr_open 并不能获得想要的效果。
在这里插入图片描述
在这里插入图片描述
对于fs.file-max 的最大值不同的操作系统限制也不同。

操作系统版本file-max最大值
RHEL4/52147483647
RHEL618446744073709551615
RHEL7.7-18446744073709551615
RHEL7.8+9223372036854775807
RHEL89223372036854775807
RHEL99223372036854775807

知识点:limits.conf

通过limits.conf 可设置用户初始化参数

root soft nproc  65536
root soft nofile 65536
root soft stack  65536
root hard nproc  65536
root hard nofile 65536
root hard stack  65536

注意:RHEL7/CentOS7 以后的系统limits.conf文件只影响通过pam登录的用户。

知识点:LimitNOFILE

以上提到了limits.conf 只影响用户,对于服务进程,需要通过配置启动文件中LimitNOFILE参数来限制。
如果LimitNOFILE没有配置或配置为infilty,则默认取fs.nr_open 数值。

在这里插入图片描述

注意:systemd 234版本以下不支持infinity参数,而CentOS 7 的systemd 版本是219。

知识点:ulimit

用户的最大打开句柄数会在操作系统启动时通过limits.conf 中数值进行初始化。操作系统启动后,可通过ulimit 进行动态修改。

ulimit -n 1048576

在这里插入图片描述

知识点:prlimit

ulimit 只能动态修改用户相关参数,如果想动态修改进程参数,则需要使用prlimit

prlimit --nofile=2147483584 -p `pidof taosd`

在这里插入图片描述

引用:
[1] Documentation for /proc/sys/fs/
[2]What is the default value and the max value range for fs.file-max in Red Hat Enterprise Linux?
[3]What is the maximum value and default value for fs.nr_open in Red Hat Enterprise Linux?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/805961.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux多进程通信(4)——消息队列从入门到实战!

Linux多进程通信总结——进程间通信看这一篇足够啦! 1.基本介绍 1)消息队列的本质其实是一个内核提供的链表,内核基于这个链表,实现了一个数据结构,向消息队列中写数据,实际上是向这个数据结构中插入一个…

怎样系统地学习自动化测试?

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号:互联网杂货铺,回复1 ,免费获取软件测试全套资料,资料在手,涨薪更快 平时的测试工作其实细分一下,大概有三个领域…

C++ 线程库(thread)与锁(mutex)

一.线程库(thread) 1.1 线程类的简单介绍 thread类文档介绍 在C11之前,涉及到多线程问题,都是和平台相关的,比如windows和linux下各有自己的接口,这使得代码的可移植性比较差。C11中最重要的特性就是对线程进行支持了&#xff…

操作系统的基础知识:操作系统的特征:并发,共享,虚拟,异步

操作系统的特性: 1.并发 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替注意:并行:指两个或多个事件在同一时刻同时发生。 操作系统的并发性指计算机系统中“同时”运行着多个程序,这…

graphicLayer.startDraw({开启连续绘制isContinued之后,无法获取连续标绘的坐标数据

摘要:graphicLayer.startDraw({开启连续绘制isContinued之后,无法获取连续标绘的坐标数据的解决方案 问题前景: graphicLayer.startDraw({开启连续绘制isContinued之后,.then()方法只走一次,无法获取连续标绘的所有坐…

【Linux】shell 脚本基础使用

在终端中输入命令可以完成一些常用的操作,但是我们都是一条一条输入命令,比较麻烦,为了解决这个问题,就会涉及到 shell 脚本,它可以将很多条命令放到一个文件里面,然后直接运行这个文件即可。 shell 脚本类…

【3GPP】【核心网】核心网/蜂窝网络重点知识面试题二(超详细)

1. 欢迎大家订阅和关注,3GPP通信协议精讲(2G/3G/4G/5G/IMS)知识点,专栏会持续更新中.....敬请期待! 目录 1. 对于主要的LTE核心网接口,给出运行在该接口上数据的协议栈,并给出协议特征 2. 通常…

Centos7使用docker安装Jenkins(含pipeline脚本语句)

一、下载Jenkins docker pull jenkins/jenkins:lts 二、启动Jenkins docker run \-u root \--rm \-d \-p 8081:8080 \-p 50000:50000 \-v /root/docker/jenkins/var/jenkins_home:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \-v /usr/bin/docker:/usr…

番外篇 | YOLOv8改进之引入YOLOv9的ADown模块 | 替换YOLOv8卷积

前言:Hello大家好,我是小哥谈。YOLOv9是一种目标检测算法,而ADown模块是YOLOv9中的一个重要组成部分。ADown模块主要用于特征提取和下采样操作,以便在后续的检测任务中更好地捕捉目标的特征。具体来说,ADown模块是YOLOv9中的一个卷积块,由一系列卷积层和池化层组成。它的…

spring boot —— Spring-Cloud-Zuul(网关服务getway),kafka笔记

一、 引入zuul依赖: org.springframework.cloud spring-cloud-starter-zuul 二、创建应用主类。使用EnableZuulProxy注解开启zuul的API网关服务功能: EnableZuulProxy SpringCloudApplication public class Application { public static void mai…

FPN(Feature Pyramid Network)详解

文章涉及个人理解部分,可能有不准确的地方,敬请指正 0. 概述 FPN,全名Feature Pyramid Networks,中文称为特征金字塔网络。它是2017年cvpr上提出的一种网络,主要解决的是目标检测中的多尺度问题。FPN通过简单的网络连…

第十四届蓝桥杯省赛真题-幸运数

代码及解析: #include <iostream> using namespace std;bool check(int x) {int tmpx,len0;while(tmp){len;tmp/10;}//算位数的方法 if(len%21)return 0;//直接retrun 0 int tlen/2;int ans10,ans20;while(t--){ans1x%10;//加每一位x/10; }while(x){ans2x%10;x/10;}if(…

AOF文件重写

1.2.3.AOF文件重写 因为是记录命令&#xff0c;AOF文件会比RDB文件大的多。而且AOF会记录对同一个key的多次写操作&#xff0c;但只有最后一次写操作才有意义。通过执行bgrewriteaof命令&#xff0c;可以让AOF文件执行重写功能&#xff0c;用最少的命令达到相同效果。 如图&am…

类和对象(一)

面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间的交互完成。 类的…

LeetCode 239. 滑动窗口最大值

滑动窗口最大值 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1&#xff1a; 输入&#xff1a;nums [1,3,-1,-3,…

双碳目标下太阳辐射预报模式【WRF-SOLAR】及改进技术在气象、农林、电力等相关领域中的应用

太阳能是一种清洁能源&#xff0c;合理有效开发太阳能资源对减少污染、保护环境以及应对气候变化和能源安全具有非常重要的实际意义&#xff0c;为了实现能源和环境的可持续发展&#xff0c;近年来世界各国都高度重视太阳能资源的开发利用&#xff1b;另外太阳辐射的光谱成分、…

T527 Qt 触摸 ----- TSLIB

一、调试 1、驱动路径 bsp/drivers/input/ctp/gt9xx/gt9xx_ts.c 2、硬件接口 挂载在TWI0下 3、中断复位脚 4、设备树 &twi0 {clock-frequency <400000>;pinctrl-0 <&twi0_pins_default>;pinctrl-1 <&twi0_pins_sleep>;pinctrl-names &quo…

关于ansible的模块 ⑤

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 继《关于Ansible的模块 ①》、《关于Ansible的模块 ②》、《关于Ansible的模块 ③》与《关于Ansible的模块 ④》之后&#xff0c…

Spring Boot 切面的一种的测试方法,java中级开发面试

void afterReturnName() { Assertions.assertEquals(studentController.getNameById(123L).getName(), "测试姓名Yz");} } 但往往切面中的逻辑并非这么简单&#xff0c;在实际的测试中其实我们也完成没有必要关心在切面中到底发生了什么&#xff08;发生了什么应该在…

正则问题【蓝桥杯】/dfs

正则问题 dfs 刚开始用的是栈&#xff0c;没有想到dfs… #include<iostream> #include<stack> using namespace std; string s; int pos; int dfs() {//ans表示到当前位置最多的x数目//num表示暂存的x数目int num0,ans0;while(pos<s.size()){if(s[pos](){pos;…