我们正在Java版本“1.7.0_21”上运行CentOS 6上的Apache Tomcat 7.0.41。 我们得到了太多的打开的文件错误,所以我做了一些研究。 一致的意见是,它是与打开文件的数量。 所以我做了以下几点:
增加了/etc/security/limits.conf中的最大文件
soft nofile 100000 hard nofile 100000
重新启动服务器
检查限制对于运行该过程的用户是有效的
[app_admin@xxx ~]$ ulimit -Hn 100000 [app_admin@xxx ~]$ ulimit -Sn 100000
使用lsof命令监视服务器上的打开文件
我观察到的是,当总打开的文件达到13000左右,和tomcat有大约4500打开的文件错误再次出现。
我很困惑。 我认为这将解决问题,但显然我不完全了解根本原因以及如何正确设置参数。
(也许)帮助我没有修改Tomcat的server.xml文件(虽然我被诱惑)。 我不想开始摆弄,让事情变得更糟。
如果有人能提供一些关于从哪里开始寻找的提示,我很乐意分享更多的信息。
我和Tomcat 6和Java 6有类似的问题,但是我的/etc/security/limits.conf看起来像
tomcat soft nproc 2047 tomcat hard nproc 16384 tomcat soft nofile 1024 tomcat hard nofile 65536
其中tomcat是用户运行的tomcat服务。