Linux下Too many open files 问题的解决

系统运行环境:Tomcat+Linux

Toomanyopenfiles经常在使用linux的时候出现,大多数情况是程序没有正常关闭一些资源引起的,所以出现这种情况,请检查io读写,socket通讯等是否正常关闭。

最近系统在跟第三方应用联调webservice接口,接口经常出现连接超时,或者调用失败,导致Socket连接没及时关闭,打开的资源超过linux默认值1024。下面贴下解决方法:

HttpClientParamshttpParams=newHttpClientParams();

httpParams.setParameter(HttpClientParams.USE_EXPECT_CONTINUE,Boolean.FALSE);

httpParams.setParameter(HttpClientParams.CONNECTION_MANAGER_TIMEOUT,5*1000L);

client=newClient(newURL(serviceUrl));

client.setProperty(CommonsHttpMessageSender.HTTP_CLIENT_PARAMS,httpParams);

arr=client.invoke(method,params);

红色为增加的解决办法。如果在高并发的系统中linux的默认值1024可能还不够用,可以设置它的值。下面介绍linux命令

ulimit-a---查看openfiles

cat/proc/sys/fs/file-max---查看设置打开最大值

相关推荐