当前位置: > Linux教程 > 系统运维 >

记录一次Linux操作系统最大文件数限制的解决过程

时间:2014-12-13 22:18来源:linux.it.net.cn 作者:IT网

在前面的文章中之前遇到过There is insufficient memory for the Java Runtime Environment to continue问题,无法连接上服务器。(http://linux.it.net.cn/e/bug/2014/1213/10215.html),当时的解决方案是通过加大linux最大文件句柄数,问题暂时得到了解决。

可是在后来的工作中仍然遇到服务器连接不上的情况,之前一直怀疑是该服务器上性能测试脚本导致占据大量句柄。

奇怪的问题是:通过xshell使用openpf用户连接Linux服务器时,首先是建立连接established,然后服务端主动close掉连接。

但是,通过root帐号可以连接上服务器。

 

一、首先,尝试su  openpf,系统提示该帐号资源已完全用尽,所以无法切换到该帐号。

然后排查各种脚本,是否存在可疑的占据句柄不释放的情况,未果。

二、既然查看该帐号资源耗尽,那么通过lsof -u openpf >test,显示该帐号下打开的文件句柄,发现大量TT相关异常。从下面截图中已经很明确异常原因是因为checkTT.sh脚本引起。

 

三、分析checkTT.sh脚本内容,该脚本内容主要用来监听ttserver是否启动,在crontab中描述为* * * * *不间断的执行,而由于ttserver在服务器改造过程中修改了启动端口,所以该监听脚本产生大量未执行完毕的句柄。

 

四、关闭该进程打开的异常句柄,cat test |grep checkTT |awk '{print $2}' |xargs kill,然后su openpf切换帐号,终于恢复正常。

 

另外,对于ulimit,file-max,file-nr,推荐一篇文章。http://www.jsxubar.info/linux文件打开数.html

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容