Tomcat假死的原因分析及解决方案

 更新时间:2023年12月18日 10:06:50   作者:江渚渔樵上  
这篇文章主要介绍了Tomcat假死的原因分析及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Tomcat假死的原因分析及解决

在参与搜人项目时,遇到tomcat假死的问题。

当时情况:

1、ps tomcat正在运行

2、用netstat 查看8080连接情况,有大量的close-wait,还有一些等待连接的状态

3、查看服务器的使用情况,没有过多的消耗内存和CPU

4、重新加载界面,没有报错,只是显示加载失败

5、加载时看到tomcat 日志报错 out of memary

在网上查看资料,问题得到解决

服务器配置:linux+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:

protocol="org.apache.coyote.http11.Http11NioProtocol"
<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

总结 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解将Web项目War包部署到Tomcat服务器基本步骤

    详解将Web项目War包部署到Tomcat服务器基本步骤

    本篇文章主要介绍了详解将Web项目War包部署到Tomcat服务器基本步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 一文详解Tomcat下载安装以及配置

    一文详解Tomcat下载安装以及配置

    这篇文章详细介绍了tomcat的下载安装以及配置,文中有详细的图文和代码示例,需要的小伙伴可以借鉴本文
    2023-04-04
  • 使用IntelliJ IDEA配置Tomcat入门教程

    使用IntelliJ IDEA配置Tomcat入门教程

    这篇文章主要介绍了使用IntelliJ IDEA配置Tomcat入门教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Maven使用tomcat8-maven-plugin插件的详细教程

    Maven使用tomcat8-maven-plugin插件的详细教程

    这篇文章主要介绍了Maven使用tomcat8-maven-plugin插件的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Tomcat安装配置方法图文教程

    Tomcat安装配置方法图文教程

    这篇文章主要为大家详细介绍了Tomcat安装配置方法图文教程,java环境变量如何配置,Eclipse安装配置方法图文教程 ,为大家分享了三个教程,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Tomcat配置IPV6的实现步骤

    Tomcat配置IPV6的实现步骤

    本文主要介绍了Tomcat配置IPV6的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Tomcat服务器图片地址中文路径问题解决办法

    Tomcat服务器图片地址中文路径问题解决办法

    这篇文章主要介绍了Tomcat服务器图片地址中文路径问题解决办法,Tomcat中如果设置不当,中文路径会导致找不到文件错误,本文就讲解了解决这个问题的方法,需要的朋友可以参考下
    2015-05-05
  • Tomcat中的Connector配置讲解

    Tomcat中的Connector配置讲解

    今天小编就为大家分享一篇关于Tomcat中的Connector配置讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 浅谈Tomcat Session管理分析

    浅谈Tomcat Session管理分析

    这篇文章主要介绍了浅谈Tomcat Session管理分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 为什么我的tomcat启动不起来

    为什么我的tomcat启动不起来

    tomcat安装好了,准备部署Web项目了,启动tomcat,发现没有反应,本文就来解决一下这个问题,感兴趣的小伙伴们可以参考一下
    2021-07-07

最新评论