Linux
apache伺服器上的netstat中有很多TIME_WAIT
許多人來這裡的原因是什麼
TIME_WAIT
?甚至我們也很少有 ESTABLISHED、SYN 連接。[root@www ~]# netstat -natp | grep "210.XX.XX.XX:80" | awk '{print $6}' | sort | uniq -c 1 ESTABLISHED 12 FIN_WAIT2 9903 TIME_WAIT
為了解釋這一點,您需要對 TCP/IP 通信有一個很好的理解。在最簡單的形式中,當有人連接到您的 Web 伺服器時,您的伺服器假定連接將持續一段時間,並為該通信分配一個埠並為該通信通道設置超時。從輸出中看到的通道或埠
netstat
進入 TIME_WAIT 狀態,如果另一端的人,即客戶端,停止通信。也許他或她需要的只是看一頁就完成了。但是您的伺服器無法知道這一點。它是在假設這將需要很長時間進行通信的情況下執行的。為什麼這樣做,主要是因為建立一個新的通信通道比保持現有的通信通道更昂貴(資源方面),特別是如果客戶端要從您的伺服器發出多個請求。如果你想深入了解它,這裡有一篇很好的文章:http ://www.serverframework.com/asynchronousevents/2011/01/time-wait-and-its-design-協議的含義和可擴展的servers.html
如果您對如何擺脫它們或防止它們如此頻繁地發生以及它們為什麼以摘要形式發生感興趣,那麼您可能想瀏覽另一個頁面:http ://www.fromdual.com/huge -等待連接的時間量