MySQLのコネクション

MySQLで’Too many connections’というエラーが出た。
http://dev.mysql.com/doc/refman/4.1/ja/too-many-connections.html
エラー通りコネクションが多すぎるということ。

MySQLのデフォルトのコネクション数は100らしい。
これより多い接続を行う場合は、max_connections変数の値を
100より大きくしてMySQLの再起動が必要ということだ。

ただ、大量にコネクションが発生する原因を追求して
そっちを解決するのも必要とは思うが…。

それから、MySQLサーバーとWebサーバーが別の場合は
そのサーバー間の通信も問題になるようで、

netstat -te
で接続状況を確認してみると、TIME_WAITでたくさんの接続がある。
どうやらMySQLとのコネクションが終了してもしばらく
サーバー間のコネクションは残るらしい。

/proc/sys/net/ipv4/tcp_tw_recycle
の設定を1にすると上手くコネクションをさばいてくれるみたいだが、
影響もあるみたいなので慎重にやったほうがいい。
[参考]
http://d.hatena.ne.jp/d_sea/20080619/p1
http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.kernel.obscure.html
http://www.atmarkit.co.jp/fwin2k/win2ktips/234netstat/netstat.html