mysqlエラー(99)
2013年3月27日
tcp_tw_recycle
tcp_tw_recycleはTIME_WAIT状態にあるコネクションを高速にリサイクルできるようにするためのフラグ。CentOSではデフォルトでは無効になっていたので、有効に。
tcp_fin_timeout
これはFIN_WAIT2の状態にあるコネクションの保有時間。デフォルトでは60秒
上記の ip_local_port_range もあわせて/etc/sysctl.confの末尾にこれらを追記
/etc/sysctl.conf
net.ipv4.ip_local_port_range = 32768 65000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 10
そしてsysctl -p で反映。
mysqlで(99)なエラーが出たよ、といって困っている人の掲示板でのやり取り(英語)
http://lists.mysql.com/mysql/204830
mysqlで(99)ならここ見ろよ、なポインタ(英語)
http://www.mysqlperformanceblog.com/2006/11/12/are-php-persistent-connections-evil/
TIME_WAITが長すぎて困ってるの、という人が教えてgoo
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2211552
そもそもnetstatとかTIME_WAITとかよくわからん、という人はこちら
http://www.atmarkit.co.jp/fwin2k/win2ktips/234netstat/netstat.html
FreeBSDの場合も含めて、さらっとスマートに説明してくれてるブログ
http://www.sato-bb.net/archive/tech/tune/time_waitmsl/
TUXとかいうサーバの話だけど、途中で「TCPコネクションの飽和を防ぐ」話があった
http://itpro.nikkeibp.co.jp/article/COLUMN/20051115/224580/
== 以下追記 ==
id:kdaibaさんからアドバイスもらったので追記しておきます。
net.ipv4.tcp_tw_recycleを有効にすると、条件によっては、TCPセッションが脹れなくなるトラブルが発生することもありうる、とのこと。
カーネル設定いじる前に以下のブログを読んで、よく理解しておいた方がよさそうです。
http://d.hatena.ne.jp/nice20/20070521#p1
http://d.hatena.ne.jp/nice20/20070517
http://ya.maya.st/d/200804c.html
台場先生、ありがとございました。
Have your say
You must be logged in to post a comment.