Linux too many open files

阅读数:37 评论数:0

跳转到新版页面

分类

Linux

正文

产生原因

从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如scoket),正在监听 的端口等等。所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。通过

ulimit -a可以查看当前系统设置的最大句柄数是多少?

open files那一行就代表系统目前允许单个进程打开的最大句柄数。

解决

1、先通过jps等其它方式找到要排查的进程

2、cat /proc/<PID>/limits,查看其设置的最大文件数是多少。

3、ls /proc/<PID>/fd,可以查看具体打开发什么东西。

4、经过上面查看,如果不是操作系统限制所致,可能是程序是使用网络连接时,没有正常关闭,或者使用文件时没有正常关闭。