TOPサーバ構築・運用> ブロック単位のメモリ割り当て
MySQLチューニング
はじめてのMySQLチューニング

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

著者:アールワークス  田中 靖之   2007/8/7
前のページ  1  2  3
ブロック単位のメモリ割り当て

   その他の項目では「ブロック」という言葉がでてきます。これはMySQLサーバのクエリキャッシュでは、サーバの負荷となるメモリ割り当て処理をなるべく減らす手法として、メモリをブロック単位(query_cache_min_res_unit)で扱うためです。

   MySQLサーバは、ブロック単位で割り当てたメモリ中にクエリ結果を入れ、余った部分は切り詰めて開放するという動作をしますが、この際に断片化(フラグメンテーション)が発生します。断片化したメモリ領域は再利用できないので無駄な領域となってしまいます。この断片化したブロックをあらわすのがQcache_free_blocksで、この値が増加している場合はFLUSH QUERY CACHEコマンドでデフラグする必要があります。

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

   このコマンドを実行後、Qcache_free_blocksが1になり(0にはなりません)、Qcache_total_blocksが減少したことがわかります。


さらにチューニングを進めるにあたって

   これまで6回の連載を通じて、最初に押さえておくべきMySQLチューニング項目を多少なりとも説明できましたが、実際にはまだまだ検討すべき項目が目白押しです。ただ、基本となるのはあくまでshow statusなどの情報です。

   今回説明しなかった項目についても、ご自身のMySQLサーバのデータを収集・グラフ化して、その変化の意味を検討してみください。おのずとチューニングすべき項目が見えてくるはずです。

前のページ  1  2  3


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


INDEX
第6回:query_cache_sizeの違いによるパフォーマンス比較
  クエリキャッシュサイズの最適値を知る
  クエリキャッシュを使用した測定結果
ブロック単位のメモリ割り当て