Too many open files

在出现Too many open files问题后,最大的可能是打开的文件或是socket没有正常关闭。为了定位问题是否由Java进程引起,通过Java进程号查看当前进程占用文件描述符情况:

# 每个文件描述符的具体属性  
lsof -p $java_pid 

# 当前Java进程file descriptor table中FD的总量  
lsof -p $java_pid | wc -l  

sudo lsof -p 76323 | wc -l

检查程序问题:

如果你对你的程序有一定的解的话,应该对程序打开文件数(链接数)上限有一定的估算,如果感觉数字异常,请使用第一步的

lsof -p 进程id > openfiles.log命令

lsof -p 76323 > openfiles.log


获得当前占用句柄的全部详情进行分析,

1)打开的这些文件是不是都是必要的?

2)定位到打开这些文件的代码

3)是否程序操作了文件写入,但是没有进行正常关闭

4)是否程序进行了通讯,但是没有正常关闭(也就是没有超时结束的机制)

数据库连接

lsof -p 94161 | grep mysql | wc -l

你可能感兴趣的:(Too many open files)