我刚刚在 stackoverflow 上问了这个问题,有人建议我也在这里问。
我有一个使用 ODBC 函数进行数据库访问的 PHP 应用程序。我的 DBA 最近发现该应用程序没有关闭其数据库连接,导致大量无效连接处于 TIME_WAIT 状态。
我们已经检查了代码,我在每个脚本中都调用了 odbc_close_all,而且即使我没有这样做,连接也应该在脚本结束时关闭。没有长时间运行的脚本会保留它们的连接
有谁见过类似的事情或者知道问题可能是什么吗?
PHP版本是5.1.4
在 Windows Server 2003 R2 Service Pack 2 上运行
MySQL 数据库
答案1
经过大量研究,我们偶然发现了几个来源,表明问题是 TcpTimedWaitDelay(感谢 VolkerK 提供的提示)。这很有帮助,但我们仍然看到在任何给定时间都有大约 30-40 个连接处于 TIME_WAIT 状态。
我们现在想知道是否有人能给出建议,说这种行为对于 Windows Server 来说是否正常,以及这是否是最好的,或者是否还有其他值得研究的途径。
谢谢