【持续更新】j2ee+tomcat实战过程中的问题及解决方案汇总

来源:互联网 发布:php编程是什么 编辑:程序博客网 时间:2024/06/06 03:05

1、 2017-11-8,服务器后台报错,too many open file。
服务器为redhat6.8,tomcat为6.0.53.
根据当前问题,网上搜索解决方案:
首先查看系统当前最大句柄数:ulimit -n
默认是1024,这个数字对于J2EE的程序来说是不够用的,因为这是典型的单进程大并发的应用,比如数据库等也是同样的道理。
然后查看:
lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more
显示数据为第一列是打开的句柄数,第二列是进程号,按照句柄数的多少倒叙排列。
然后可以评估我们需要修改的句柄数。
比如执行ulimit -HSn 4096
就将该数据修改为4096了
为了对所有用户和主机本身进行修改数据,执行以下:
vi /etc/security/limits.conf
在末尾加上
* soft nofile 4096
* hard nofile 4096
释义:前面的*代表所有用户 soft/hard代表两种模式,一种是软模式,即超过之后进行警告,一种是硬模式,超过既定数量,直接拒绝或抛出异常。数字代表设定的句柄阈值。
具体修改的数字不是越大越好,一般来讲
soft limit < hard limit < kernel < 实现最大file descriptor数采用的数据结构所导致的限制
可以通过我们上面的lsof那一行命令来进行评估。

阅读全文
0 0
原创粉丝点击