大量time-wait的處理方法

地球沒有花發表於2018-09-27

背景是我的php總有慢日誌,但是dba那邊沒有慢查詢日誌。php-fpm.conf裡設定的超時時間是1s,slb那邊的超時時間是3s。

有如下幾種情況發生:

1、php有慢日誌,但是nginx沒有499,那應該就是我的連線在(1s,3s)的時間內返回給了slb;

2、php有慢日誌,nginx有499,那就是真超時了,連slb都斷開請求了;

但對於跨機房來說也應該是專線內網,怎麼會有php連線mc叢集超過1s呢。然後就請dba幫我查一下,結果他幫我查出來tcp連線有大量的time-wait:ss -na。

這個“大量的time-wait”是在查超時額外贈送的問題~

經過一番搜尋,解決了,在/etc/sysctl.conf裡配置兩行:

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

開啟了tcp連線的重用和回收功能。

time-wait過一會兒就降下來了。

相關文章