数百个 CLOSE_WAIT

数百个 CLOSE_WAIT

当我在 Google Compute Engine 上运行我的代码到看似是 Google 的服务器时,出现了文件泄漏:

php        3630         www-data  873u     IPv4              34632       0t0        TCP xxxx.internal:43328->vu-in-f139.1e100.net:https (CLOSE_WAIT)
php        3630         www-data  874u     IPv4              34640       0t0        TCP xxxx.internal:39500->vh-in-f139.1e100.net:https (CLOSE_WAIT)
php        3630         www-data  875u     IPv4              34648       0t0        TCP xxxx:43336->vu-in-f139.1e100.net:https (CLOSE_WAIT)

我没有直接调用这些服务器。我相信 Google 的 API 库可能正在调用这些调用,但它似乎没有关闭它。我在裸机服务器上运行了相同的代码,没有发现这些文件泄漏。

有人知道这是什么原因造成的吗?

答案1

关闭等待是由于 TCP 会话在远程端关闭,但本地套接字尚未关闭。操作系统将继续跟踪连接,直到达到操作系统的 TCP 套接字时间限制或您“关闭”它。这通常是由于未在连接后进行清理造成的。(即,当您使用完套接字后,您没有正确关闭它或销毁对象)您可能在使用完 google 的 API 对象后没有清理它们。如果没有更多详细信息(代码?),我们真的只能猜测。

相关内容