CLOSE_WAIT 在 Windows 上保持进程活动

CLOSE_WAIT 在 Windows 上保持进程活动

我在 Windows 服务器上运行了几个 Java 进程。我注意到,当我尝试终止进程时,它有时会保持活动状态。原因似乎是与该进程相关的套接字处于 CLOSE_WAIT 状态。

知道为什么在我尝试终止该进程后某些套接字仍处于 CLOSE_WAIT 状态吗?

谢谢

答案1

由于硬件问题,该进程处于不可中断的等待状态,可能需要重新启动。只有硬件出现问题时才会发生这种情况。

............. 德拉米尔·多德贾 http://dramildodeja.webnode.com/

答案2

一个想法 - 您需要调整 TCP 设置,完全不熟悉 Windows,但通常您希望缩短TIME_WAITCLOSE_WAIT间隔,以便连接不会停留太久。在繁忙的服务器上,堆积在您身上的套接字会CLOSE_WAIT达到数万个,并无谓地消耗资源...您可以嗅探接口、winpcap 等,看看是否发送了 fin,正确的(非重置)关闭应如下所示:

TCP: .... 0... = (No push)
TCP: .... .0.. = (No reset)
TCP: .... ..0. = (No SYN)
TCP: .... ...1 = FIN

您可以跟踪或捆绑应用程序,例如,如果它使用closesocket(),请确保您获得的 rc 为 0,等等。

相关内容