我有几个Java进程在Windows服务器上运行。 我不时注意到,当我试图杀死这个过程时,它仍然活着。 原因似乎是与进程关联的CLOSE_WAIT中的套接字。
任何想法为什么一些套接字仍然在CLOSE_WAIT后,我试图杀死进程?
谢谢
由于硬件问题,进程处于不可中断的等待状态,可能需要重新启动。 这只发生在硬件有问题的情况下。
…………. Dramil Dodeja http://dramildodeja.webnode.com/
一个想法 – 你需要调整你的TCP设置,不熟悉Windows,但一般你想缩短TIME_WAIT或CLOSE_WAIT间隔,这样连接就不会停留很长时间。 在繁忙的服务器上, CLOSE_WAIT堆叠的套接字成千上万,无CLOSE_WAIT消耗资源…您可以嗅探界面,winpcap等,查看是否正在发送fin,是否正确(不重置)closures应该看起来像这样:
TCP: .... 0... = (No push) TCP: .... .0.. = (No reset) TCP: .... ..0. = (No SYN) TCP: .... ...1 = FIN
你可以跟踪或桁架的应用程序,例如,如果它使用closesocket() ,确保它是你的rc为0,等等