mysql解決大量time_wait
阿新 • • 發佈:2019-02-18
狀態 blog ade 占用 recycle 正常 sta rep lin
mysql解決大量time_wait
命令查看TIME_WAIT連接數 netstat -ae|grep "TIME_WAIT" |wc -l 早上登陸服務器的時候輸入netstat -an|grep mysql 發現存在大量TIME_WAIT狀態的連接 tcp 0 0 127.0.0.1:3306 127.0.0.1:41378 TIME_WAIT tcp 0 0 127.0.0.1:3306 127.0.0.1:41379 TIME_WAIT tcp 0 0 127.0.0.1:3306 127.0.0.1:39352 TIME_WAIT tcp 0 0 127.0.0.1:3306 127.0.0.1:39350 TIME_WAIT tcp 0 0 127.0.0.1:3306 127.0.0.1:35763 TIME_WAIT tcp 0 0 127.0.0.1:3306 127.0.0.1:39372 TIME_WAIT tcp 0 0 127.0.0.1:3306 127.0.0.1:39373 TIME_WAIT tcp 0 0 127.0.0.1:3306 127.0.0.1:41176 TIME_WAIT 通過調整內核參數解決 vi /etc/sysctl.conf 編輯文件,加入以下內容: 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修改系統默認的TIMEOUT時間 修改之後,再用命令查看TIME_WAIT連接數 netstat -ae|grep "TIME_WAIT" |wc –l 發現大量的TIME_WAIT 已不存在,mysql進程的占用率很快就降下來的,網站訪問正常。 不過很多時候,出現大量的TIME_WAIT狀態的連接,往往是因為網站程序代碼中沒有使用mysql.colse(),才導致大量的mysql TIME_WAIT.mysql 大量time wait 解決辦法
mysql解決大量time_wait