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


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

由於網站使用nginx做的反向代理he負載均衡。在沒有默認的系統TCP參數情況下回導致大量的TIME_WAIT出現。



 

 終端可以下敲入

 

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 讓修改生效  

  在查看,已經恢復正常

Java代碼   收藏代碼
  1. TIME_WAIT 69  
  2. CLOSE_WAIT 4  
  3. FIN_WAIT2 15  
  4. ESTABLISHED 236  
  5. LAST_ACK 1  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM