mysqlサーバが大量のTIMEを発見WAITソリューション


netstat -an |grep  TIME_WAIT |wc
Webサーバ(Linux):
    
     netstat -ae |grep mysql
カーネルパラメータを調整して解決することで、
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ソケットの高速回収をオンにし、デフォルトは0でオフにします.
net.ipv4.tcp_fin_timeoutシステムデフォルトのTIMEOUT時間の変更
 
修正してから
[root@db mysql_log]# netstat -ntu |grep TIME_WAIT|wc 
      0       0       0
大量のTIMEを発見WAITはもう存在せず、mysqlプロセスの占有率はすぐに下がって、各サイトのアクセスは正常です!
最後によく調べてみると、一昨日新しくオンラインになったシステムで、プログラムコードにはmysqlが使われていません.colse()は、mysql TIMEを大量に引き起こします.WAIT