SHOW POOL_CACHE

名前

SHOW POOL_CACHE --  クエリキャッシュのヒット率や、キャッシュストレージの状況を表示する

概要

   SHOW POOL_CACHE
  

説明

SHOW POOL_CACHE インメモリクエリキャッシュ が有効である場合に、 クエリキャッシュのヒット率や、キャッシュストレージの状況を表示します。 例を示します。 各項目の説明は表1をご覧ください。

    test=# \x
    \x
    Expanded display is on.
    test=# show pool_cache;
    show pool_cache;
    -[ RECORD 1 ]---------------+---------
    num_cache_hits              | 891703
    num_selects                 | 99995
    cache_hit_ratio             | 0.90
    num_hash_entries            | 131072
    used_hash_entries           | 99992
    num_cache_entries           | 99992
    used_cache_entries_size     | 12482600
    free_cache_entries_size     | 54626264
    fragment_cache_entries_size | 0
   

注意: キャッシュストレージがmemcachedのときは、num_cache_hits, num_selects, cache_hit_ratio以外の列の値は0になります。

表 1. show pool_cacheの表示項目

名称説明
num_cache_hitsクエリキャッシュにヒットした回数です。
num_selectsキャッシュにヒットしなかったSELECTクエリの回数です。
cache_hit_ratioキャッシュのヒット率です。 num_cache_hits/(num_cache_hits+num_selects)で計算されます。
num_hash_entriesキャッシュを管理するハッシュテーブルのエントリ数です。 大量のキャッシュを効率よく管理するため、Pgpool-IIはハッシュテーブルを使っています。 ハッシュテーブルのエントリ数は、memqcache_max_num_cache以上で、かつその数に最も近い2のべき乗になる数が自動的に設定されます。 たとえば、memqcache_max_num_cacheのデフォルトである100,000では、131,072 (2の17乗)が設定されます。
used_hash_entries 使用済みのハッシュエントリ数です。 これがnum_hash_entriesに近くなる場合は、num_hash_entriesを増やすことをお勧めします。 ハッシュテーブルを使い切ってもエラーにはなりませんが、登録済みのハッシュテーブルエントリとキャッシュを削除して新しいキャッシュを登録するため、性能が低下します。
num_cache_entries 使用済みのキャッシュエントリ数です。 現在の実装ではused_hash_entriesと同じ値になります。
free_cache_entries_size 未使用のキャッシュのバイト単位のサイズです。 この値が0に近づくと、登録済みのキャッシュを削除して新しいキャッシュを登録するため、エラーにはなりませんが性能が低下します。 memqcache_total_sizeを増やすことを検討してください。
fragment_cache_entries_size 断片化しているキャッシュのバイト単位のサイズです。 Pgpool-IImemqcache_cache_block_sizeで指定される固定長のブロックにキャッシュを書き込みます。 登録されたキャッシュが削除されると、次にそのブロックを再利用するまではその領域は断片化します。 fragment_cache_entries_sizeはそうした断片化した領域の合計サイズを表示します。