在linux里,在/etc/security/limits.conf里有一个参数是nofile,作用是控制某用户的文件打开数量。可以使用ulimit -n的命令查看具体的限制,一但当前文件打开数达到nofile上限就无法再打开文件,从而使某些应用运行异常,如用户无法通过ssh登录系统。
通过我们可以使用lsof命令查看文件打开的具体情况,如用户、进程的信息。使用
lsof -p pid
可以查看某一个进程的文件打开数量
lsof -u uid
可以查看某一个用户的文件打开数量
但是发现好像没有一个参数可以知道所有进程的文件打开数量
所以我就写了个小脚本来统计一下所有进程的文件打开数量,从而可以得知到底是哪个进程出现问题,再作进一步的处理,脚本的具体内容如下
同样,可以稍作修改用于统计所有用户的文件打开数量
抛砖引玉,以供参考