將專案部署到linux上後,發現系統有大量的time_wait狀態的鏈結,大量time_wait狀態的鏈結不能被及時**導致的結果就是系統可用socket被耗盡而無法處理新的請求。對於http協議的短連線請求,應該要防止產生大量的time_wait,我們可以通過設定linux網路引數來達到目的,步驟如下:
1、編輯sysctl.conf
#cd /etc/
#vim sysctl.conf
2、在sysctl.conf新增下面引數儲存退出(按esc鍵後輸入:wq!儲存退出) #
開啟syn cookies,預設為0
net.ipv4.tcp_syncookies = 1
#開啟重用time_wait,預設為0
net.ipv4.tcp_tw_reuse = 1
#開啟快速**time_wait,預設為0
net.ipv4.tcp_tw_recycle = 1
#修改保持fin-wait-2狀態的時間,預設為60s
net.ipv4.tcp_fin_timeout = 30
通過上面的修改後基本可以達到讓系統不會產生大量time_wait。
對於linux伺服器網路效能的調優可以在baidu找到比較詳細的文件。
減少Linux伺服器TIME WAIT過多問題
time wait狀態的意義 客戶端與伺服器端建立tcp ip連線後關閉socket後,伺服器端連線的埠 狀態為time wait 是不是所有執行主動關閉的socket都會進入time wait狀態呢?有沒有什麼情況使主動關閉的socket直接進入closed狀態呢?主動關閉的一方在傳送最後乙個 a...
如何減少Linux伺服器TIME WAIT過多
time wait狀態的意義 客戶端與伺服器端建立tcp ip連線後關閉socket後,伺服器端連線的埠狀態為time wait 是不是所有執行主動關閉的socket都會進入time wait狀態呢?有沒有什麼情況使主動關閉的socket直接進入closed狀態呢?主動關閉的一方在傳送最後乙個 ac...
減少Linux伺服器TIME WAIT過多問題
time wait狀態的意義 客戶端與伺服器端建立tcp ip連線後關閉socket後,伺服器端連線的埠 狀態為time wait 是不是所有執行主動關閉的socket都會進入time wait狀態呢?有沒有什麼情況使主動關閉的socket直接進入closed狀態呢?主動關閉的一方在傳送最後乙個 a...