我在一个windows服务器上运行了几个java进程。我不时地注意到,当我试图扼杀这一过程时,它依然存在。原因似乎是与进程相关的CLOSE_WAIT中的套接字。
知道为什么在我试图终止进程之后,一些套接字仍然保留在CLOSE_WAIT中吗?
谢谢
发布于 2011-01-07 01:49:42
一个想法-您需要调优您的TCP设置,根本不熟悉窗口,但通常您希望使TIME_WAIT或CLOSE_WAIT间隔更短,这样连接就不会停留那么长时间。在繁忙的服务器上,在CLOSE_WAIT中堆积在你身上的套接字会占用成千上万的资源。您可以嗅探接口、绞盘等,并查看是否正在发送鳍,正确的(非重置)关闭应该如下所示:
TCP: .... 0... = (No push)
TCP: .... .0.. = (No reset)
TCP: .... ..0. = (No SYN)
TCP: .... ...1 = FIN您可以跟踪或整理应用程序,例如,如果它使用closesocket(),请确保它的rc值为0,等等。
发布于 2011-01-17 06:53:31
由于硬件问题,该进程处于不可中断的等待状态,可能需要重新启动。只有当硬件出现问题时,才会发生这种情况。
.德拉米尔·杜德贾( Dramil Dodeja http://dramildodeja.webnode.com/ )
https://serverfault.com/questions/219662
复制相似问题