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.
关注微信公众号

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com