 |

|
はじめてのMySQLチューニング |
第3回:max_connectionsとthread_cacheのチューニングを行う
著者:アールワークス 田中 靖之 2007/7/17
|
|
|
前のページ 1 2 3 次のページ
|
 |
thread_cacheについて
|
これまで掲載してきた結果のグラフに線が引いてあるのに、あえて本文ではThreads_createdに触れませんでした。しかし、この値をよく見るとmax_used_connectionsの変化とThreads_createdの推移は似通っていて、緑線の手前までは順調に増加し、緑線以降は横ばいになっていることに気づきます。
この傾向は「同時接続数が増加するにつれてMySQLサーバでは新たなスレッド生成に忙しくなり、ついには一度に生成できるスレッド数の限界に達してしまった」ということをあらわしています。
ではスレッドの生成を抑えることができれば、性能は向上するのではないでしょうか。そのためのパラメータが「thread_cache」です。
thread_cacheではその名の通り「スレッドをいくつキャッシュしておくか」を指定する項目です。通常、MySQLはクライアントからの要求を受けてスレッドを生成し、処理が完了すればスレッドを終了します。ですが、スレッドの生成・終了にはある程度のサーバリソースを消費しますので、クライアントからの要求が増えればその負荷も増大します。
こうしたケースに対応するためthread_cacheを設定し、一度生成したスレッドを終了せずに維持しておき、次に別のクライアントから要求があった際に再利用します。そうすることによって、スレッドの生成、終了処理によるサーバ負荷の増大を防ぐことができるのです。
|
現在キャッシュされているスレッド数の確認方法
|
現在キャッシュされているスレッドの数ですが、これは「第2回:負荷によるベンチマークを試すで示したようにThread_cached=0となっていたはずです。では現在、thread_cacheはいくつに設定されているのでしょうか。以下のコマンドを用いて実際に確認してみましょう。

(画像をクリックすると別ウィンドウに拡大図を表示します)
thread_cacheは0になっています。つまりデフォルトではthread_cacheは使わない、という設定になっているのです。
|
thread_cacheのチューニング
|
ではthread_cacheの値を変えてどのように変わるのかを調べてみましょう。thread_cacheの設定方法はmax_connectionsと同様です。設定値はmax_connectionsと同じ450に変更します。
[mysqld]
max_connections=450
thread_cache=450
その後、MySQLサービスを再起動します。
# /etc/init.d/mysql restart
稼動中の設定変更も可能ですが、こちらの場合は名称がthread_cache_sizeとなりますので、注意してください。
$ mysql -u root -p
mysql> set global thread_cache_size=450;
ではthread_cacheを変更した際の結果を確認しましょう。
|
前のページ 1 2 3 次のページ
|

|
|

|
著者プロフィール
株式会社アールワークス 田中 靖之
ネットワークインテグレーション部 主にWebサービス系のシステム運用監視を担当するネットワークインテグレーション部に所属。システム改善やチューニングを顧客と共に考える姿勢を大事にしている。
|
|
|
|