Apache 似乎不会关闭已建立的 TCP 连接

Apache 似乎不会关闭已建立的 TCP 连接

我遇到了一个大海捞针式的问题,正在努力解决。无法在测试服务器上重现它。

症状是 TCP 连接处于 ESTABLISHED 状态,因此看起来没有关闭。

环境是 CentOS 上的 PHP / Apache / Postgresql

在正常运行下,ESTAB DB 连接数低于 20,而活动 HTTPD 进程数可攀升至 400 范围。

在故障情况下,ESTAB DB 连接数激增至配置的限制 1000,而 HTTPD 进程数没有发生显著变化

为了确认 TCP 连接与 HTTPD 相关,我使用了 netstat -nop,然后计算建立到 DB 的连接数量。

同时,我用 ps -ef 查看活跃 HTTPD 的数量

我尚未能够捕获故障并尝试跟踪其中一个 HTTPD。

在我看来,TCP 连接应该随着 HTTPD 的退出而关闭。我研究过 TPC 孤儿问题,但这似乎仅适用于尝试关闭连接的情况。

日志文件似乎没有任何与此问题相关的活动。我正在尝试将日志级别设置得更高,看看更详细的信息是否能给我一些线索。

有没有其他人遇到过当所属进程消失时 TCP 连接不会关闭的情况?

相关内容