TOPサーバ構築・運用> MySQLのチューニングパラメータ




MySQLチューニング
はじめてのMySQLチューニング

第1回:定量的な情報収集のススメ

著者:アールワークス  田中 靖之   2007/7/2
前のページ  1  2  3
MySQLのチューニングパラメータ

   ここまでで情報収集は完了です。次にチューニングパラメータを確認してみましょう。

   MySQLには様々なチューニングパラメータが存在します。現在のパラメータ設定の一覧はshow variablesで取得可能です。mysqladminでは以下のように実行します。
show variablesコマンドの情報
図2:show variablesコマンドの情報
(画像をクリックすると別ウィンドウに拡大図を表示します)

   なお、表示されたすべての項目がチューニング可能というわけではなく、versionなどは固定のパラメータとなります。

   さて、取得できた情報のうち、大きくはグローバルパラメータとスレッドごとのパラメータに分けることができます。グローバルパラメータはMySQLサーバ全体で共有する値で、以下のような項目が当てはまります。

  • max_connections
  • key_buffer_size
  • table_cache
  • thread_cache
  • query_cache_size

表1:グローバルパラメータ

   逆に、スレッドごとのパラメータとしては以下のような項目があげられます。

  • sort_buffer_size
  • read_buffer_size
  • join_buffer_size
  • read_rnd_buffer_size

表2:スレッドごとのパラメータ

   グローバルパラメータは単純です。例えばkey_buffer_sizeはインデックス展開しておくために使用するメモリ領域の最大値をあらわしており、これを64MBに設定すればサーバ全体で必要とするメモリ量も64MBとなります。

   スレッドごとのパラメータは、当然スレッドごとに割り当てられる値となります。例えば、取得データをソートするために使用するメモリ領域の最大値であるsort_buffer_sizeを以下のように設定した場合、2MB×100で最大200MBのメモリをsort_buffer用に空けておく必要があります。これを倍に変更すれば、400MBが必要になります。

sort_buffer_size=2MB
max_connections=100

   このように、スレッド個別のパラメータはより慎重に検討する必要がありますので、基本的なMySQLのチューニングとしては、まずグローバルパラメータに的を絞って検討すべきでしょう。

   さて、ここまでで、MySQLをチューニングするにあたって必要な最低限の情報を知ることができました。次回以降ではこれらの情報を利用して、各グローバルパラメータごとにチューニングを行っていきます。

前のページ  1  2  3


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


INDEX
第1回:定量的な情報収集のススメ
  効果を定量的に判断しよう
  show status実行結果の収集
MySQLのチューニングパラメータ