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 and 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はそうした断片化した領域の合計サイズを表示します。 |