nginx大量TIME WAIT的解決辦法

2021-09-02 11:07:00 字數 1094 閱讀 3025

由於**使用nginx做的反向**he負載均衡。在沒有預設的系統tcp引數情況下回導致大量的time_wait出現。

終端可以下敲入

netstat -n | awk '/^tcp/  end '
time_wait 8535

close_wait 5

fin_wait2 20

established 248

last_ack 14

closed:無連線是活動的或正在進行

listen:伺服器在等待進入呼叫

syn_recv:乙個連線請求已經到達,等待確認

syn_sent:應用已經開始,開啟乙個連線

established:正常資料傳輸狀態

fin_wait1:應用說它已經完成

fin_wait2:另一邊已同意釋放

itmed_wait:等待所有分組死掉

closing:兩邊同時嘗試關閉

time_wait:另一邊已初始化乙個釋放

last_ack:等待所有分組死掉

解決辦法 修改核心引數

vi /etc/sysctl.conf

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse=1 #讓time_wait狀態可以重用,這樣即使time_wait佔滿了所有埠,也不會拒絕新的請求造成障礙 預設是0

net.ipv4.tcp_tw_recycle=1 #讓time_wait盡快** 預設0

net.ipv4.tcp_fin_timeout=30

/sbin/sysctl -p 讓修改生效

在檢視,已經恢復正常

time_wait 69

close_wait 4

fin_wait2 15

established 236

last_ack 1

Nginx後端服務大量TIME WAIT的解決

在http1.1協議中,有個 connection 頭,connection有兩個值,close和keep alive,這個頭就相當於客戶端告訴服務端,服務端你執行完成請求之後,是關閉連線還是保持連線,保持連線就意味著在保持連線期間,只能由客戶端主動斷開連線。還有乙個keep alive的頭,設定的...

nginx大量TIME WAIT的解決辦法

1 netstat n awk tcp end 檢視time wait 很大 2 解決此問題需要對sysctl.conf引數進行設定新增以下內容 vim etc sysctl.conf net.ipv4.tcp syncookies 1 net.ipv4.tcp tw reuse 1 讓time w...

tomcat大量time wait問題

在服務端訪問量大的時候檢測到大量的time wait,並且介面請求延時較高。執行 netstat n awk tcp end 這個shell命令的意思是把netstat n 後結果的最後一條放到s陣列中,如果相同則執行 1操作。此時能看到tcp各種狀態下的連線數量,示例 服務端架構是採用nginx ...