开发者社区> 问答> 正文

大量的 close_wait 状态的 tcp 链接造成 tomcat 假死,如何解决?

大量的 close_wait 状态的 tcp 链接造成 tomcat 假死,急,求大神
如题。项目在正常运行过程中,已经正常运行很久,突然发现项目访问不了,重启了 tomcat 才可以正常访问。查了数据,正常的时候 tcp 的 close_wait 数一直是几个左右,在项目死掉的时间点上 close_wait 数一直维持在 300 左右,关掉 tomcat 后 close_wait 数量又恢复正常。很怀疑是因为 close_wait 数量变高导致 tomcat 假死 现在找不出是什么原因导致项目的 close_wait 数量变高

展开
收起
OSC开源社区 2024-05-31 15:47:23 15 0
2 条回答
写回答
取消 提交回答
  • 设置SO_TIMEOUT:在Tomcat的配置中,可以通过设置连接超时时间来自动关闭那些长时间未完成读写的连接。这可以通过在server.xml文件中的元素增加或修改soTimeout属性实现

    2024-05-31 18:49:14
    赞同 展开评论 打赏
  • 我用的是jetty,看日志,是发现jetty没有主动关闭连接导致大量的close_wait,为什么出现close_wait请参考TCP状态图。
    解决方法:
    1.设置连接超时,超时后关闭连接
    2.主动关闭连接

    2024-05-31 16:37:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Tomcat 的云原生演进 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载