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を減らす等を試みる。
/usr/bin/plackup  --worker 10  -s Starman -app app.psgi

MaxClients  10

また、1リクエスト毎に、接続を一旦切るという方法も有効。

ハードウェア

mysqlのmaster/slaveの構成にし、slaveの台数を増やすことにより対応できるコネクション数を増やす。

SEE ALSO

thread_cache
max connectionsエラーとは別件だが、スレッドをキャッシュすることによりパフォーマンス的な最適化を行うことが出きる。


  • カテゴリ:
  • Tech