MySQLに接続数が多いときの設定の覚書
MySQLはクライアントから接続の度にスレッドを作って、
処理してはクライアントに返して、スレッドを破棄します。
そこで、サーバーにアクセスが多い場合に、調整するのがいい項目があったりします。
同時接続数
MySQLに同時に接続できる台数があり、それを超えると。
[1040] Too many connections と怒られます。
確認
SHOW STATUS LIKE 'Max%';
※長いのでこんなのでいい
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Max_used_connections | 1 |
+----------------------+-------+
このパラメータどれだけ接続数があるか確認。
my.conf
max_connections
※デフォルトは100
300にする場合
max_connections=300
接続増やすと作成されるスレッドも増えるので、スレッドの方も調整する。
スレッドのキャッシュ
コネクションの切断後に、スレッドをキャッシュしておくサイズです。
my.conf
thread_cache_size
デフォルト8M
max_connectionsが300の場合
thread_cache_size=100
※一般的な設定は、max_connectionsの3分の1みたいです。
確認
SHOW STATUS LIKE 'Threads%';
コレで表示される、
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 0 |
| Threads_connected | 1 |
| Threads_created | 1 |
| Threads_running | 1 |
+-------------------+-------+
その中の、Threads_created。
これは、新しく作成されたスレッド数ってことなので、
この数がキャッシュのミスというか、ハズレ。
これが、0であれば全部キャッシュでヒットしていると言うことになります。
基本中の基本のような設定か。
もう、これだけでおなかいっぱい。