tomcat 报错 Too many open files

问题描述:

当Tomcat单节点大批量访问时,会出现:Too many open files 报错导致系统卡死或者进程直接关闭,从而影响业务。

问题原因:

进程在请求打开一个文件,实际上就是在请求句柄,但是现在进程打开的句柄已经达到了上限,已经无法打开新句柄了,所以导致系统无法在接入新的连接,或者目前连接的请求也将出现问题!

处理方法:

● 增加文件描述符

      ulimit -n 65535
      echo 65532 > /proc/sys/fs/file-max

优化TCP/IP设置

   echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
   echo 60000 > /proc/sys/net/ipv4/tcp_keepalive_time
   echo 15000 > /proc/sys/net/ipv4/tcp_keepalive_intvl
   echo 0 > /proc/sys/net/ipv4/tcp_window_scaling

其他优化

#使用更多的本地端口
echo 1024 25000 > /proc/sys/net/ipv4/ip_local_port_range
#增加更多的socket buffer内存(参考)
echo 2621143 > /proc/sys/net/core/rmem_max
echo 262143 > /proc/sys/net/core/rmem_default
echo 4096 131072 262143 > /proc/sys/net/ipv4/tcp_rmem
echo 4096 13107262143 > /proc/sys/net/ipv4/tcp_wmem
#增加运行期所需的shm内存(参考)
echo 67108864 > /proc/sys/kernel/shmmax echo 16777216 > /proc/sys/net/core/rmem_max echo 16777216 >
/proc/sys/net/core/wmem_default echo 16777216 >
/proc/sys/net/core/wmem_max echo 4096 > /proc/sys/net/core/somaxconn
echo 262143 > /proc/sys/net/core/rmem_default
#增加用户最大打开文件数(如果本身系统的数字就比这个要大就不用修改了)
#---------------修改/etc/security/limits.conf文件---------- soft nofile 32768
*hard nofile 32768
###重启后用户的最大打开文件数就变成 32768 了,当然你也可以看情况再加大。

总结:
实际情况需要根据机器的具体配置进行调整,不能直接生搬硬套,不然可能会适得其反!建议访问量较大的应用尽量使用集群方式部署!

发布了36 篇原创文章 · 获赞 46 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_31457413/article/details/98888179
今日推荐