TOPサーバ構築・運用> key_bufferの効果を確認する
MySQLチューニング
はじめてのMySQLチューニング

第5回:key_buffer_sizeの違いによるパフォーマンス比較

著者:アールワークス  田中 靖之   2007/7/30
前のページ  1  2  3  次のページ
key_bufferの効果を確認する

   作成したindex_passにアクセスして、負荷をかけてみます。mysqlコマンドラインから、以下のようなコマンドを数度実行してください。なお、{PASSWD}は、実際にデータベースに登録されているものをいくつかピックアップしてください。
mysql> select * from test.http_auth where pass='{PASSWD}';

   負荷をかけた後で、以下の項目を確認してください。


(画像をクリックすると別ウィンドウに拡大図を表示します)

   各項目は以下の通りの意味を持ちます。

パラメータ 意味
Key_read_requests キーキャッシュからのキーブロック読み取り要求回数
Key_reads ディスクからのキーブロックの物理的読み取り回数

表2:各項目の意味

   キーバッファ内にあるデータについてはキャッシュから読み出され、キャッシュ内にないものはディスクから直接読み出されます。当然、ディスクからの読み出しが少ないほうがサーバ負荷が低くなります。つまりMySQLクライアントからの要求回数(Key_read_requests)に対して、なるべくディスクからの直接読み出し(Key_reads)を少なくするべきです。

   リファレンスマニュアルではKey_read_requests/Key_reads比を100〜150以上にするよう推奨していますが、ここでの結果はそれを十分満たしていることがわかります。よって、今回のケースではkey_buffer_sizeは8Mbytesで良い、という結論になります。


key_buffer_sizeをデチューンしての測定

   とはいえ、これが結論では面白くありません。そこでkey_buffer_sizeが不足するとどのような問題が起こるのかを確認してみましょう。今回はこれまでのチューニングとは逆に設定値を8Mbytesから4Mbytesへ引き下げて測定してみます。

   まず以下のようにkey_buffer_sizeを設定してください。

[mysqld]
max_connections=450
thread_cache=450
table_cache=450
key_buffer_size=4M

   その後、MySQLサービスを再起動します。

# /etc/init.d/mysql restart

   また今回はこれまでとは多少測定内容を変更しました。キーバッファをより多く消費するようにusernameカラムのみに対するクエリで計測していたものを、他のpass、uid、gidカラムに対してもアクセスするようにSuper Smackの設定などを調整しました。キーバッファの消費量を多するためには、行を増やすなどの簡単な方法がありますので、検討してみてください。

前のページ  1  2  3  次のページ


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


INDEX
第5回:key_buffer_sizeの違いによるパフォーマンス比較
  key_buffer_sizeとは
key_bufferの効果を確認する
  key_buffer_sizeデチューン後の測定結果