最近2次程序报错,Connt open file,too much file....
后来用lsof 指令一查看,发现文件打开数满了,超过65535这个默认上限,虽然调大这个数可以临时解决问题,但这不是解决问题的办法
2次问题的分析结果
程序中有定时发送HTTP请求、打开socket连接,发送指令
在出问题的程序这边,每分钟增加60-80个文件句柄打开数,但程序并没有新打开文件,只是多开了很多通道
java 26049 root 272r FIFO 0,6 0t0 864055990 pipe
java 26049 root 273w FIFO 0,6 0t0 864055990 pipe
java 26049 root 274r 0000 0,11 0 864055991 eventpoll
java 26049 root 275r FIFO 0,6 0t0 864055992 pipe
java 26049 root 276w FIFO 0,6 0t0 864055992 pipe
java 26049 root 277r 0000 0,11 0 864055993 eventpoll
第一次的原因是:HTTP的地址访问被禁止,程序还在一直请求,后来换掉Http地址就OK了
第二次的原因是:Socket端口不通,程序也是一直在请求,后来改掉Socket的地址端口,换个可以连通的地址就OK了
最后
以上就是喜悦斑马最近收集整理的关于lsof -p xxx 出现很多FIFO、pipe 的问题原因的全部内容,更多相关lsof内容请搜索靠谱客的其他文章。
发表评论 取消回复