最近在redis的项目中,存在打开的文件句柄数递增的现象,当超过设置的单进程最大文件句柄数时出现进程挂死 , Redis连接失败;
本身这个项目的文件句柄数不会超过100,首先查看当前服务器打开的文件句柄数汇总情况:
/usr/sbin/lsof -n | awk '{print $2}'|sort|uniq -c|sort -nr|more
首先根据汇总情况查看你的服务进程占用了多少个文件句柄,数量上是否有所递增的趋势,若发现递增不减的再细致查看该进程都打开了哪些句柄,使用命令:
/usr/sbin/lsof -p 进程号
一般默认的单进程能打开的最大文件句柄数为1024,当然你可以更改其值,但终归治标不治本;
若想知道服务器上设置的单进程最大文件句柄数,可通过命令:
ulimit -n