この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。
記載された情報が古くなっている可能性がございますので十分ご注意ください。
WordPress 等の MySQL を利用しているサイトでは、アクセス数が多くなると「データベースに接続できません」のエラーが発生することがあります。
これは、MySQLへの同時接続数がオーバーしたことでも発生します。
※もちろん全てがこの原因ではないですよ。
これに対応するために、MySQLのチューニングを行いましょう。(チューニングが行えないサーバーもあるので注意)
具体的には、この2つのパラメーターを調整します。
- [max_connections]:MySQLへの最大同時接続数 (初期値:32)
- [wait_timeout]:MySQLとの通信が無くなってから切断するまでの秒数 (初期値:28800)
なぜ、[wait_timeout]まで変更するかというと・・・初期値に注目してください。
28800 秒 = 8 時間 です。
アクセス過多の状態の場合は、よく処理待ちのままプロセスが残ってしまう場合があります。
そもそも、データベースのアクセスにそんなに時間が必要な処理はないはずなので、適当設定で自動切断して接続数を回復させてあげましょう。
設定の変更方法は、サーバー内の/etc/my.cnfを編集すれば可能です。
※サーバーにより、場所などが違う場合があります。
[mysqld] max_connections = 64 wait_timeojut = 120
接続数は倍に、タイムアウトは120秒に設定してみました。
接続数は増やしすぎるとメモリ喰いつぶして、サーバー全体の機能低下を引き起こす可能性がありますので、やみくもに上げないようにしてください。