nginx大量TIME_WAIT的解決辦法--轉

原文地址:http://liuyieyer.iteye.com/blog/2214722?utm_source=tuicool&utm_medium=referralnginx

因爲網站使用nginx作的反向代理he負載均衡。在沒有默認的系統TCP參數狀況下回致使大量的TIME_WAIT出現。服務器



 

 終端能夠下敲入cookie

 

Shell代碼   收藏代碼
  1. netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  
Java代碼   收藏代碼
  1. TIME_WAIT 8535  
  2. CLOSE_WAIT 5  
  3. FIN_WAIT2 20  
  4. ESTABLISHED 248  
  5. LAST_ACK 14  

 

Java代碼   收藏代碼
  1. CLOSED:無鏈接是活動的或正在進行  
  2. LISTEN:服務器在等待進入呼叫  
  3. SYN_RECV:一個鏈接請求已經到達,等待確認  
  4. SYN_SENT:應用已經開始,打開一個鏈接  
  5. ESTABLISHED:正常數據傳輸狀態  
  6. FIN_WAIT1:應用說它已經完成  
  7. FIN_WAIT2:另外一邊已贊成釋放  
  8. ITMED_WAIT:等待全部分組死掉  
  9. CLOSING:兩邊同時嘗試關閉  
  10. TIME_WAIT:另外一邊已初始化一個釋放  
  11. LAST_ACK:等待全部分組死掉  

   解決辦法 修改內核參數負載均衡

  

Shell代碼   收藏代碼
  1. vi /etc/sysctl.conf  
  2. net.ipv4.tcp_syncookies = 1  
  3. net.ipv4.tcp_tw_reuse=1 #讓TIME_WAIT狀態能夠重用,這樣即便TIME_WAIT佔滿了全部端口,也不會拒絕新的請求形成障礙 默認是0  
  4. net.ipv4.tcp_tw_recycle=1 #讓TIME_WAIT儘快回收 默認0  
  5. net.ipv4.tcp_fin_timeout=30  
  6. /sbin/sysctl -p 讓修改生效  

  在查看,已經恢復正常tcp

Java代碼   收藏代碼
  1. TIME_WAIT 69  
  2. CLOSE_WAIT 4  
  3. FIN_WAIT2 15  
  4. ESTABLISHED 236  
  5. LAST_ACK 1  
相關文章
相關標籤/搜索