PGメモ

非エンジニアの記録

mysqlのコネクションに関するちょっとしたチューニング

昨日はインデックスについての記事をポストしたが、今日はコネクションについて。

mysqladmin -uusername -p extended-status | egrep '(Max|Threads_)'

まずはこのコマンドで現在の状態を知る。

Max_userd_connections:これまでに記録された同時接続数の最大値
Threads_cached:スレッドのキャッシュ数
Threads_connected:現在開いている接続の数
Threads_created:接続を処理するために生成されたスレッド数
Threads_running:スリープ状態になっていないスレッド数

で、これらをどう設定していくか
まずmax_connectionsについて。そもそもなんなのかというとMySQLサーバが許可する、MySQLクライアントの同時接続最大数です。
感覚的にはお店の席数のようなものでしょうか。
この値を増やすことによってたくさんのお客さんがお店に来ることができるようになるわけですね。

しかし、お客さんがたくさんきても、それを処理できなければお店は悲鳴をあげてしまいます。そこで登場するのがthread_cacheです
一度受けたオーダーを受けるたびに忘れてしまうのではなく、それを記憶しておき次のオーダーに生かす感じでしょうか。

この2つを調整することによってDBの性能を生かしていくようだ
/etc/my.cnfに以下のように記述

max_connections=512
thread_cache=450