前几天查看heka日志的错误日志的时候,发现报错信息 too many open files,很明显打开文件数过多了。

第一个问题来了,如何查看当前进程打开的文件数和最大打开文件数呢?

当前进程打开文件数

ls /proc/[pid]/fd|wc -l

当前进程最大打开文件数
cat /proc/[pid]/limits|grep open

可以看到如下所示的输出:

Max open files            1024                 4096                 files

当前系统最大打开文件数
ulimit -n

第二个问题是我该如何修改进程的最大文件打开数呢?
找到最大文件打开数的设置方法,这个问题也就解决了,通常有下面几种修改方式:
1)ulimit -n 102400 直接使用ulimit命令修改,但这个只会对当前会话生效,终端关闭后,设置丢失。
2)/etc/security/limitd.conf 文件中增加limits的配置,一般如下:

*               soft   nofile       102400

配置的具体含义,大家自行搜索。/etc/security/limitd.conf 在每一个会话创建时都会加载,所以修改这里是一个使配置长期生效的方法。
3)修改shell的启动项,将ulimit -n 102400放进去,每次创建会话时也会加载。一般是/etc/profile文件,或者/etc/profile.d/limits.sh中。

到此为止,配置好了,你通过 ulimit -n 查看系统的最大文件打开数已经生效了。但此时查看进程的最大文件打开数没有变,原因是这个值是在进程启动的时候设定的,要生效必须重启!

ok,那就重启吧,重启完毕,结果发现依然没变!这奇了怪了,后来经过好久的排查,最终确认问题是,该程序是通过 supervisord来管理的,也就是这进程都是 supervisord 的子进程,而 supervisord 的最大文件打开数还是老的配置,此时必须重启 supervisord 才可以。后来在saltstack上也遇到了同样的问题,必须把所有的 salt-minion 重启。

当大家遇到limits修改不生效的时候,请查一下进程是否只是子进程,如果是,那就要把父进程也一并重启才可以。

最大文件打开数的正确修改姿势相关推荐

  1. Linux比较大文件内容,Linux系统最大文件打开数优化,解决Too many open files报错

    这是一个Linux系统常见的故障,网络上也能轻易的找到解决办法,我也只是在工作中遇到了这个问题,所以在博客记录下,以备不时之需. 一.报错截图: 图为resin的报错日志,很明显提示了Too many ...

  2. [转帖]备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改

    备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改 https://blog.csdn.net/toontong/article/details/50440272 ...

  3. linux查看文件打开限制,Linux最大文件打开数使用经验详解

    首先普及几个知识:Linux下一切都是文件,包括输入输出设备.网络连接.socket.管道等 与文件打开数最相关的是文件描述符(有的人喜欢称作文件标识符,英文为file descriptor),文件打 ...

  4. RHEL修改最大文件打开数,关于epoll socket Too many open files问题的解决

    在做对LINUX服务器进行并发压力测试的时候,当并发数超过1024时,系统提示:Too many open files,导致此问题的原因是LINUX系统限制了文件最大打开数,如下是解决此问题的办法. ...

  5. Centos修改文件打开数限制

    查看打开文件数: ulimit -n 修改打开文件限制,修改修改两个文件,分别是: vi /etc/security/limits.conf vim /etc/security/limits.d/20 ...

  6. linux 最大文件打开数nofile及nr_open、file-max说明

    本文为研究http://www.2cto.com/os/201510/446342.html博文结论 1./etc/security/limits.conf中指定的nofile的值,nofile有上限 ...

  7. weblogic 文件打开数_Weblogic任意文件读取和任意文件上传

    引言 weblogic中两个CVE漏洞比较有意思,所以复现一下,该两个漏洞需要在poc中加入用户名和密码(cookie)才能实现. 环境搭建 环境搭建: 首先安装weblogic 下载地址 http: ...

  8. linux 文件打开数设置, too ma

    临时解决 ulimit -HSn 65536 永久解决 编辑文件,添加以下两行: /etc/security/limits.conf soft nofile 65536 hard nofile 655 ...

  9. weblogic 文件打开数_WebLogic任意文件上传漏洞(CVE20192618)复现

    1.漏洞介绍 CVE-2019-2618漏洞主要是利用了WebLogic组件中的DeploymentService接口,该接口支持向服务器上传任意文件.攻击者突破了OAM(Oracle Access ...

  10. 解除Linux最大进程数和最大文件句柄打开数限制

    ulimit用于shell启动进程所占用的资源 1.语法格式:  ulimit [-acdfHlmnpsStvw] [size] 2.参数介绍:  -H 设置硬件资源限制.  -S 设置软件资源限制. ...

最新文章

  1. 从月薪5千到月薪3万,优秀的程序员是这样做的...
  2. linux执行数据库的命令,实验-shell执行数据库命令.TXT
  3. 网络编程学习笔记(RES_USE_INET6解析器选项)
  4. ElasticSearch 简介,概念和集成
  5. 漫游Kafka设计篇之主从同步
  6. python九九乘法表求和,平均数,最大值,最小值、金字塔、等边三角形
  7. Codeforces Round #759 (Div. 2, based on Technocup 2022 Elimination Round 3)
  8. 【渝粤题库】国家开放大学2021春2528监督学题目
  9. 五、Vue模块化开发学习笔记——JavaScript原始功能、匿名函数的解决方案、使用模块作为出口、CommonJS、ES6 export和import的使用
  10. Windows 7 正在走 XP 系统的老路
  11. Java实现在线打开word文档加盖印章/盖章/签名功能
  12. 智能客服搭建(5) - FreeSWITCH + mod_unimrcp + ESL 开发对接
  13. 忘记Jenkins管理员密码的解决办法
  14. 2022年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多,看完你也可以了
  15. 佛经经典名句300句
  16. 微信小程序-template模板使用
  17. struct timeval用法与时间溢出问题
  18. 视频号的播放量和互动率、完播率密不可分
  19. 使用百度云主机的GPU主机教程_第二部分
  20. 逃出996,追逐新目标!

热门文章

  1. 《深度学习》花书训练营day01-线性代数
  2. 图像分割学习笔记_1(opencv自带meanshift分割例子)
  3. python的全局变量和局部变量
  4. 广色域图片Android,Android Q将支持广色域照片
  5. mysql 一对多约束条件_MySQL数据库/约束条件与表关系.md · 静谧之裳/python-learn - Gitee.com...
  6. andorid自定义ViewPager之——子ViewPager滑到边缘后直接滑动父ViewPager
  7. Android中如何实现无缝切码流
  8. mysql++缓冲区_思考mysql内核之初级系列4--innodb缓冲区管理(摘自老杨)
  9. 天然气阶梯是按年还是按月_您搞懂了吗?阶梯电费是按年计算而不是按月计算的...
  10. 姚聪 旷世_首款国产豪华品牌大型SUV,汉龙旷世品质气场100分! - 快讯