Linux server上too many open files问题

Posted 每天更强一点...

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux server上too many open files问题相关的知识,希望对你有一定的参考价值。

之前测试遇到了"too many open files"的问题。ulimit -Hn 查了下发现server上最大open file数是4096。写了个简单的脚本检测发现进程创建的fd个数在不断增加,8分钟之后达到上限然后程序报错,其中绝大部分fd都是关于socket的。

 

在server上安装lsof查看当前进程打开文件,并定位出现频率最高的通信主机和端口。最后发现是一个Java程序bug,每两秒执行一次的方法会不断创建新的httpclient。修正bug后进程创建的fd数稳定在24。

 

lsof -i -a -p $PID 可以列出进程打开的所有network files。所用的简单检测脚本为

#!/bin/bash

cd /proc/$(ps -ef | grep appName | grep -v grep | awk {print $2})/fd

while true

do

ls -l | grep socket | wc -l

sleep 5

done 

 

 

以上是关于Linux server上too many open files问题的主要内容,如果未能解决你的问题,请参考以下文章

Too many processes on Zabbix server   解决办法

中标麒麟 错误异常too many open files解决方法

今天碰到报错 Data source rejected establishment of connection, message from server: "Too many conne

too many open files linux服务器 golang java

too many open files异常及解决办法

too many open files 的问题怎么解决