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-IIはmemqcache_cache_block_sizeで指定される固定長のブロックにキャッシュを書き込みます。 登録されたキャッシュが削除されると、次にそのブロックを再利用するまではその領域は断片化します。 fragment_cache_entries_sizeはそうした断片化した領域の合計サイズを表示します。 |