Tomcat假死的原因及解决方案

简介: Tomcat假死的原因及解决方案

假死:Linux服务器没有崩,浏览器访问页面,出现无法访问的情况但是并没有报4xx或5xx错误,重启tomcat后,恢复正常。

原因:tomcat默认最大连接数(线程数)200个,默认每一个连接的生命周期2小时(7200秒),tomcat使用http 1.1协议,而http1.1默认是长连接。tomcat接受处理完请求后,socket没有主动关闭,因此如果在2小时内,请求数超过200个,服务器就会出现上述假死现象。

解决

  • 方案1
    及时断开socket
  • 方案2:修改tomcat配置文件,修改最大连接数(增大)
    修改server.xml配置文件,Connector节点中增加acceptCount和maxThreads这两个属性的值,并且使acceptCount大于等于maxThreads
<Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"  
      redirectPort="8443" acceptCount="500" maxThreads="400" />
  • 方案3:修改linux的TCP超时时间(socket生命周期)限制
vi /etc/sysctl.conf
# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 30
# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1800
# 探测次数
net.ipv4.tcp_keepalive_probes=2
# 探测间隔秒数
net.ipv4.tcp_keepalive_intvl=2

编辑完 /etc/sysctl.conf, 重启network 生效

[root@temp /]# /etc/rc.d/init.d/network restart


相关文章
|
应用服务中间件
IDEA出现问题:idea启动tomcat 很慢解决方案
IDEA出现问题:idea启动tomcat 很慢解决方案
1596 0
IDEA出现问题:idea启动tomcat 很慢解决方案
|
2月前
|
应用服务中间件
解决方案:IDEA控制台输出Tomcat中文乱码
解决方案:IDEA控制台输出Tomcat中文乱码
56 0
解决方案:IDEA控制台输出Tomcat中文乱码
|
2月前
|
Java 应用服务中间件 Linux
tomcat启动时黑窗口一闪而过的问题及解决方案
tomcat启动时黑窗口一闪而过的问题及解决方案
124 0
|
监控 算法 Java
java tomcat服务无缘无故挂掉分析和解决方案
最近有同事反应有时候xxx系统有时候会时不时出现服务异常提示,一上机器,发现xxx服务进程不在,重启服务后又恢复了,所以这边就需要去跟进问题。
2749 0
|
Java 应用服务中间件
tomcat启动startup.bat一闪而过解决方案
tomcat启动startup.bat一闪而过解决方案
174 0
|
Java 应用服务中间件
IDEA出现问题:修改jsp页面tomcat不生效解决方案
IDEA出现问题:修改jsp页面tomcat不生效解决方案
674 0
IDEA出现问题:修改jsp页面tomcat不生效解决方案
|
Java 应用服务中间件 Android开发
启动Tomcat一闪而过解决方案
启动Tomcat一闪而过解决方案
|
应用服务中间件
IDEA2021.3中Tomcat 9.0控制台中文乱码解决方案
IDEA2021.3中Tomcat 9.0控制台中文乱码解决方案
IDEA2021.3中Tomcat 9.0控制台中文乱码解决方案
|
NoSQL 应用服务中间件 Redis
tomcat redis session共享的解决方案SessionListener不执行
tomcat redis session共享的解决方案SessionListener不执行
|
应用服务中间件
Tomcat闪退,出现The JAVA_HOME environment variable is not defined correctly的解决方案
Tomcat出现The JAVA_HOME environment variable is not defined correctly问题的解决方案
Tomcat闪退,出现The JAVA_HOME environment variable is not defined correctly的解决方案