Too many connections対策
最終更新日 : 2010-05-16 21:58:32
DBI connect('db','user',...) failed: Too many connections
原因
mysqlの接続MAX数がオーバした際にでます。
対応方法
サーバ側
現状のコネクション数の確認
以下のコマンドで確認できます。
show full processlist
max_connectionsの最適化
デフォルトだと100とかなので、数値をあげてみるとか。
[mysqld] max_connections=500
クライアント側
modperl, Sarman, etc..
接続を使い回している系の場合、workerを減らす等を試みる。
また、1リクエスト毎に、接続を一旦切るという方法も有効。
/usr/bin/plackup --worker 10 -s Starman -app app.psgi
MaxClients 10
また、1リクエスト毎に、接続を一旦切るという方法も有効。
ハードウェア
mysqlのmaster/slaveの構成にし、slaveの台数を増やすことにより対応できるコネクション数を増やす。
SEE ALSO
- thread_cache
- max connectionsエラーとは別件だが、スレッドをキャッシュすることによりパフォーマンス的な最適化を行うことが出きる。