今天凌晨四点,生产机房发来短信,显示系统资源使用不足,紧接着电话打来,本人立刻赶往公司。
立刻检查机器的内存,存储空间,cpu都正常,暂时没找到问题。
接着检查日志,凌晨四点收单批量系统在干啥呢,最终发现问题,文件存在但是程序却打不开,根据errno显示,EMFILE 24 Too many open files,问题清楚。
执行了sysctl和unlimited 显示结果没问题,配置的参数足够大,根据经验,肯定是open了文件没有close
关键命令来了,lsof -n ,统计出来,进程打开文件的数量,排序,很明显其中一个特别大,然后分析该进程的代码,很快找到了问题。



© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
您必须登录才能参与评论!
立即登录



收藏了,感谢分享
那为什么CPU 内存会正常?
操作系统的文件句柄数是配置好的,已经在内存里了,不管用多少内存都固定,进程并没有一直处理逻辑,cpu不会高
看到的点个关注
那几个不都比较大吗
找到后kill -9