web伺服器time wait值過高解決方案

2021-09-03 10:27:18 字數 1607 閱讀 2022

time_wait調優過程

1、檢視連線的訪問狀態:

注:(1)、time_wait值顯得有點高,太高了會暫用伺服器端口。導致伺服器無法響應。ddos一般都是這種情況

(2)、併發連線1689正常的值

(3)、syn_recv表示應該沒收到ddoc的***,要是受到***的話,這個響應值應該很高。

2、檢視一下系統開放多少個tcp埠:

[root@web005 ~]# cat /etc/sysctl.conf | grep port

net.ipv4.ip_local_port_range = 1024 65535

開放6萬多個tcp埠,好像接近危險邊緣了。

3、看一下系統允許開啟的檔案數:

[root@web005 ~]# ulimit  -n

102400

應該也不算這個問題了。

4、給核心調優:

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 30

然後執行 /sbin/sysctl -p 讓引數生效。

注釋:net.ipv4.tcp_syncookies = 1 表示開啟syn cookies。當出現syn等待佇列溢位時,啟用cookies來處理,可防範少量syn***,預設為0,表示關閉;

net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉;

net.ipv4.tcp_tw_recycle = 1 表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉。

net.ipv4.tcp_fin_timeout = 30  修改系?預設的 timeout 時間 

5、保持之後過來蠻久還沒有見改觀。剩下最後一步:

上谷歌之後發現還要看一下這個值:tcp_timestamps=1

我這裡預設是0.這樣上面的意思是要是tcp_timestamps沒有開啟的話tw_recyle也是設定不生效的。但是這樣有個問題,就是當我們前端是lvs 。使用nat模型的適合是最好不要開啟這個的。很容易照成網路問題。

執行:net.ipv4.tcp_timestamps = 1    #sysctl -p

6、再檢視一下:

time_wait值過不了多久就降了好多。

#注:當有時候懷疑是***,用netstat命令很卡的適合可以用ss命令:速度很快

[root@web005 ~]# ss -ant | awk ' end '

syn-sent 2

syn-recv 1

estab 2321

state 1

fin-wait-1 1

time-wait 13698

listen 6

關於web伺服器TIME WAIT值高的問答

發件人 周 收件人 sery 抄送 主題 請教問題 我看你們的伺服器的連線都是比較正常的 root 381263 conf netstat n awk tcp end end close wait 6 fin wait1 114 fin wait2 76 established 675 syn re...

web伺服器 簡單web伺服器實現

三次握手 一般情況下是瀏覽器先傳送請求資料,c s ack 應答 三次握手成功後,才開始進行通訊資料的收發。四次揮手 一般情況下是客戶端先關閉,給瀏覽器傳送關閉資訊。如果瀏覽器傳送了關閉資訊,但是伺服器沒有回過去,較慢 那麼瀏覽器一直發是不是就會有問題?所以會等待 2msl的時間。一般為2 5分鐘。...

減少Linux伺服器TIME WAIT過多問題

time wait狀態的意義 客戶端與伺服器端建立tcp ip連線後關閉socket後,伺服器端連線的埠 狀態為time wait 是不是所有執行主動關閉的socket都會進入time wait狀態呢?有沒有什麼情況使主動關閉的socket直接進入closed狀態呢?主動關閉的一方在傳送最後乙個 a...