生产实例:CLOSE_WAIT 连接问题

生产实例:CLOSE_WAIT 连接问题

我在 1 个 ELB 后面使用了 10 个 EC2 实例。ELB 配置了 80 到 8080 以及 443 到 8080 端口。

所有 10EC2 实例都安装了 Apache Tomcat,1 分钟内 ELB 上的总请求数约为 8000 到 10000 个。

我在拥有 Apache Tomcat 的 10 个 EC2 实例上遇到了 CLOSE_WAIT 连接的问题。

EC2 实例类型:m1.xlarge

当我们重新启动 Apache Tomcat 时,所有 CLOSE_WAIT 连接都会丢失,但这不是在生产实例上工作的正确方法。

请帮帮我。

答案1

netstat -an有些客户端在完成操作后不会正确关闭 TCP 连接。这超出了您的控制范围。这些客户端通常会在一段时间后超时,除了使您从中获取的列表变得混乱等之外,不会造成太大的问题。

那么,您为什么会遇到这个问题?

这可能是相关的: 什么限制了 Linux 服务器上的最大连接数?

答案2

这是此处描述的问题的一个变体: https://unix.stackexchange.com/questions/10106/orphaned-connections-in-close-wait-state 您的应用程序是否有许多移动客户端?这些客户端通过不可靠的网络连接,可能会对 TCP 状态做出疯狂的事情。

处理此问题最简单的方法是滚动重启 Apache 实例 - 比如每 30 分钟重启一台服务器。如果您的 ELB 后面有足够的实例,那么对您服务的净影响应该是可以承受的。

答案3

查看刀具

Cutter 是一个基于 Linux 的防火墙工具,允许防火墙管理员强制中止通过防火墙的连接。

相关内容