首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLOSE_WAIT连接的Tomcat行为

CLOSE_WAIT连接的Tomcat行为
EN

Stack Overflow用户
提问于 2015-10-20 19:09:45
回答 2查看 7.8K关注 0票数 1

acceptCount队列保持在OS级别。假设我们有一个10K的acceptCount队列。

情况-由于依赖项或网络问题之一和所有客户端超时期间,服务器无法处理请求或花费很长时间。最终,队列具有10K CLOSE_WAIT连接。现在,如果服务再次备份,并开始处理。它会清理CLOSE_WAIT连接队列吗?在这种情况下猫会怎么表现。

EN

回答 2

Stack Overflow用户

发布于 2015-10-20 21:19:19

关于CLOSE_WAITS和达到最大连接/线程数的一些提示,(我在WebLogic服务器上也有类似的问题,但这些都是一般的提示)

由于网络问题而释放卡住线程:(如果根据业务允许的话)

  1. 为所有远程调用设置超时值(例如DB/ HTTP/ EJB/.)
  2. 检查是否终止/杀死长时间运行的线程(请求)

在尝试任何解决办法之前,最好仔细检查并找到根本原因。

CLOSE_WAITS应该在重载期结束后清除,以防这是问题,但是如果线程被卡住,您可能需要尽快重新启动才能解决这个问题。

票数 1
EN

Stack Overflow用户

发布于 2015-10-20 21:56:08

acceptCount队列保持在OS级别。

这里我假设您指的是侦听待办事项队列。

假设我们有一个10k的acceptCount队列。

没办法说出来。您可以向操作系统提示您希望它的长度,但是操作系统可以上下调整它,并且没有API来告诉您实际长度是多少。

最终,队列有10k CLOSE_WAIT连接。

不,没有。CLOSE_WAIT状态没有在任何地方排队,侦听待办队列与CLOSE_WAIT没有任何关系。

它会清理CLOSE_WAIT队列吗?

没有这样的队伍来清理。

如果您真正要求的是重新启动进程,清除CLOSE_WAIT状态下的所有端口,那么答案是退出包含这些端口的进程就可以做到这一点。

然而,让Tomcat检测所有关闭的连接并自行关闭它们也是如此。如果你有很多这样的东西,真正的问题是它为什么不自动这么做。应该是这样的。

如果这是由某个地方转发的请求引起的,那么在您的应用程序中,听起来就像是内部同步了一些不应该同步的东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33244943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档