file_cache_statistics
概要
各 BE ノードのデータキャッシュに関するメトリクス情報を表示するために使用します。この情報は、BE のデータキャッシュに関する監視メトリクスから取得されます。
このシステムテーブルは、バージョン 2.1.6 および 3.0.2 以降でサポートされています。
データベース
information_schema
テーブル情報
| カラム名 | 型 | 説明 |
|---|---|---|
| BE_ID | BIGINT | BE ノードの ID |
| BE_IP | STRING | BE ノードの IP アドレス |
| CACHE_PATH | STRING | BE ノードのキャッシュパス |
| METRIC_NAME | STRING | メトリクス名 |
| METRIC_VALUE | STRING | メトリクス値のテキスト表現。数値の比較や計算には明示的にキャストしてください |
Doris のバージョンによって、利用できるメトリクスは異なる場合があります。
2.1.x のメトリクス
主要なメトリクスのみを記載しています。
-
normal_queue_curr_elements現在キャッシュにある File Block の数。
-
normal_queue_max_elementsキャッシュに格納できる File Block の最大数。
-
normal_queue_curr_size現在のキャッシュサイズ。
-
normal_queue_max_size許容されるキャッシュの最大サイズ。
-
hits_ratioBE の起動以降のキャッシュヒット率。範囲は 0~1。
-
hits_ratio_5m直近 5 分間のキャッシュヒット率。範囲は 0~1。
-
hits_ratio_1h直近 1 時間のキャッシュヒット率。範囲は 0~1。
3.0.x のメトリクス
TODO
バージョン 4.1.5 でのメトリクスの変更
バージョン 4.1.5 以降、次の二つの METRIC_NAME 値を利用できます。これらは、プロセスの起動時から BE ごと、キャッシュパスごとに個別に累積されます。
| METRIC_NAME | 単位 | 意味 |
|---|---|---|
evict_not_downloaded_size | バイト | ダウンロード完了前に削除されたキャッシュブロックの論理範囲サイズの累計。現在ダウンロード中のブロックは含まず、ダウンロード済みデータが物理的に削除された量を示すものではありません |
evict_not_downloaded_num | ブロック | このように削除されたキャッシュブロックの累計数 |
同じバージョン以降、total_removed_size は、ダウンロードが完了した後に削除されたキャッシュブロックのバイト数のみをカウントします。ダウンロードが完了していないブロックは、新しいメトリクスで個別に集計されます。ダウンロード中のブロックに削除マークを付けても、これらのカウンターは増加しません。
対応する brpc /vars の名前は file_cache_evict_not_downloaded_size と file_cache_evict_not_downloaded_num で、それぞれ先頭にキャッシュパスが付きます。File Cache Monitoring を参照してください。システムテーブルの METRIC_NAME にはパスのプレフィックスが付かず、パスは CACHE_PATH に表示されます。
例えば、新しいメトリクスとダウンロード済みデータの累積削除量を確認するには、次のクエリを実行します。
SELECT BE_ID, CACHE_PATH, METRIC_NAME, CAST(METRIC_VALUE AS DOUBLE) AS metric_value
FROM information_schema.file_cache_statistics
WHERE METRIC_NAME IN ('total_removed_size', 'evict_not_downloaded_size', 'evict_not_downloaded_num')
ORDER BY BE_ID, CACHE_PATH, METRIC_NAME;
このクエリは、各 BE のキャッシュパスごとのメトリクスを返します。値はキャッシュの利用状況に応じて変化します。
例
-
すべてのキャッシュメトリクスをクエリする
mysql> select * from information_schema.file_cache_statistics;
+-------+---------------+----------------------------+----------------------------+--------------------+
| BE_ID | BE_IP | CACHE_PATH | METRIC_NAME | METRIC_VALUE |
+-------+---------------+----------------------------+----------------------------+--------------------+
| 10003 | 172.20.32.136 | /mnt/output/be/file_cache/ | normal_queue_curr_elements | 1392 |
| 10003 | 172.20.32.136 | /mnt/output/be/file_cache/ | normal_queue_curr_size | 248922234 |
| 10003 | 172.20.32.136 | /mnt/output/be/file_cache/ | normal_queue_max_elements | 102400 |
| 10003 | 172.20.32.136 | /mnt/output/be/file_cache/ | normal_queue_max_size | 21474836480 |
| 10003 | 172.20.32.136 | /mnt/output/be/file_cache/ | hits_ratio | 0.8539634687001242 |
| 10003 | 172.20.32.136 | /mnt/output/be/file_cache/ | hits_ratio_1h | 0 |
| 10003 | 172.20.32.136 | /mnt/output/be/file_cache/ | hits_ratio_5m | 0 |
+-------+---------------+----------------------------+----------------------------+--------------------+ -
キャッシュヒット率をクエリし、ヒット率で並べ替える
select * from information_schema.file_cache_statistics where METRIC_NAME = "hits_ratio" order by cast(METRIC_VALUE as double) desc;