TiFlashクラスターを監視する
本書では、TiFlashの監視項目について説明します。
TiUPを使用してTiDBクラスタをデプロイする場合、監視システム(Prometheus&Grafana)も同時にデプロイされます。詳細については、 モニタリングフレームワークの概要を参照してください。
Grafanaダッシュボードは、Overview、PD、TiDB、TiKV、Node_exporterなどを含む一連のサブダッシュボードに分割されています。診断に役立つ多くのメトリックがあります。
TiFlashには、TiFlash -Summary 、 TiFlash-Proxy-Summary 、およびTiFlash-Proxy-Detailsの3つのダッシュボードパネルがあります。これらのパネルのメトリックは、TiFlashの現在のステータスを示します。 TiFlash-Proxy-SummaryパネルとTiFlash-Proxy-Detailsパネルは、主にRaftレイヤーの情報を表示し、メトリックはTiKVの主要な監視指標で詳しく説明されています。
ノート:
TiFlashのモニターを改善するには、TiDBv4.0.5以降のバージョンを使用することをお勧めします。
次のセクションでは、 TiFlash-Summaryのデフォルトの監視情報を紹介します。
サーバ
- ストアサイズ:各TiFlashインスタンスで使用されるストレージサイズ。
- 使用可能なサイズ:各TiFlashインスタンスで使用可能なストレージサイズ。
- 容量サイズ:各TiFlashインスタンスのストレージ容量。
- 稼働時間:最後の再起動以降のTiFlashの実行時間。
- メモリ:TiFlashインスタンスごとのメモリ使用量。
- CPU使用率:TiFlashインスタンスごとのCPU使用率。
- FSync OPS:1秒あたりのTiFlashインスタンスごとのfsync操作の数。
- File Open OPS:1秒あたりのTiFlashインスタンスごとの
open回の操作の数。 - 開いているファイル数:各TiFlashインスタンスによって現在開かれているファイル記述子の数。
ノート:
ストアサイズ、FSync OPS、ファイルオープンOPS、およびオープンファイル数は現在、TiFlashストレージレイヤーの監視情報のみを対象としており、TiFlash-Proxyの監視情報は対象としていません。
コプロセッサー
- 要求QPS:すべてのTiFlashインスタンスによって受信されたコプロセッサー要求の数。
batchはバッチリクエストの数です。batch_copは、バッチ要求内のコプロセッサー要求の数です。copは、コプロセッサー・インターフェースを介して直接送信されるコプロセッサー要求の数です。cop_dagは、すべてのコプロセッサー要求におけるdag要求の数です。super_batchは、スーパーバッチ機能を有効にするためのリクエストの数です。 - エグゼキュータQPS:すべてのTiFlashインスタンスによって受信されたリクエスト内の各タイプのdagエグゼキュータの数。
table_scanはテーブルスキャンエグゼキュータです。selectionは選択エグゼキュータです。aggregationはアグリゲーションエグゼキュータです。top_nはTopNエグゼキュータです。limitはリミットエグゼキュータです。 - 要求期間:コプロセッサー要求を処理するすべてのTiFlashインスタンスの合計期間。合計期間は、コプロセッサー要求が受信されてから要求への応答が完了するまでの時間です。
- エラーQPS:コプロセッサー要求を処理しているすべてのTiFlashインスタンスのエラーの数。
meet_lockは、読み取ったデータがロックされていることを意味します。region_not_foundは、リージョンが存在しないことを意味します。epoch_not_matchは、読み取られたリージョンエポックがローカルエポックと矛盾していることを意味します。kv_client_errorは、TiKVとの通信でエラーが返されることを意味します。internal_errorはTiFlashの内部システムエラーです。otherは他のタイプのエラーです。 - 要求処理期間:コプロセッサー要求を処理するすべてのTiFlashインスタンスの期間。処理時間は、コプロセッサー要求の実行開始から実行の完了までです。
- 応答バイト/秒:すべてのTiFlashインスタンスからの応答の合計バイト。
- コップタスクのメモリ使用量:コプロセッサー要求を処理するすべてのTiFlashインスタンスの合計メモリー使用量。
- 要求数の処理:コプロセッサー要求を処理するすべてのTiFlashインスタンスの総数。リクエストの分類は、リクエストQPSの分類と同じです。
DDL
- スキーマバージョン:各TiFlashインスタンスに現在キャッシュされているスキーマのバージョン。
- スキーマ適用OPM:
schema diff分あたりのすべてのTiFlashインスタンスによってapplyの操作で同期されたTiDB1の数。このアイテムには、applyのfailed applyつのタイプのカウントが含まれています:diff apply、およびfull apply。diff applyは、単一の適用の通常のプロセスです。diff applyが失敗すると、failed applyは1増加し、TiFlashはfull applyにロールバックし、最新のスキーマ情報をプルして、TiFlashのスキーマバージョンを更新します。 - スキーマ内部DDLOPM:すべてのTiFlashインスタンスで1分あたりに実行される特定のDDL操作の数。
- スキーマ適用期間:すべてのTiFlashインスタンスで
apply schemaの操作に使用される時間。
保管所
- 書き込みコマンドOPS:すべてのTiFlashインスタンスのストレージレイヤーが1秒あたりに受信した書き込み要求の数。
- ライトアンプリフィケーション:各TiFlashインスタンスのライトアンプリフィケーション(ディスク書き込みの実際のバイトを論理データの書き込みバイトで割ったもの)。
totalはこの開始以降の書き込み増幅であり、5minは過去5分間の書き込み増幅です。 - 読み取りタスクOPS:各TiFlashインスタンスの1秒あたりのストレージレイヤー内の読み取りタスクの数。
- ラフセットフィルターレート:ストレージレイヤーのラフセットインデックスによってフィルター処理された、最後の1分間に各TiFlashインスタンスによって読み取られたパケット数の割合。
- 内部タスクOPS:すべてのTiFlashインスタンスが1秒間に内部データ並べ替えタスクを実行する回数。
- 内部タスク期間:内部データ並べ替えタスクのためにすべてのTiFlashインスタンスによって消費される時間。
- ページGCタスクOPM:すべてのTiFlashインスタンスが1分間にデルタデータ並べ替えタスクを実行する回数。
- ページGCタスク期間:デルタデータ並べ替えタスクを実行するためにすべてのTiFlashインスタンスによって消費される時間の分布。
- ディスク書き込みOPS:すべてのTiFlashインスタンスによる1秒あたりのディスク書き込み数。
- ディスク読み取りOPS:すべてのTiFlashインスタンスによる1秒あたりのディスク読み取り数。
- 書き込みフロー:すべてのTiFlashインスタンスによるディスク書き込みのトラフィック。
- 読み取りフロー:すべてのTiFlashインスタンスによるディスク読み取りのトラフィック。
ノート:
これらのメトリックは、TiFlashストレージレイヤーの監視情報のみを対象としており、TiFlash-Proxyの監視情報は対象としていません。
ストレージ書き込みストール
- 書き込みおよびデルタ管理スループット:すべてのインスタンスの書き込みおよびデータ圧縮のスループット。
throughput_writeは、Raftを介したデータ同期のスループットを意味します。throughput_delta-managementは、データ圧縮のスループットを意味します。total_writeは、最後の開始以降に書き込まれた合計バイト数を意味します。total_delta-managementは、最後の開始以降に圧縮されたデータの合計バイト数を意味します。
- 書き込みストール期間:インスタンスごとのリージョンデータの書き込みと削除(範囲の削除)のストール期間。
- インスタンスごとの書き込みスループット:インスタンスごとの書き込みのスループット。これには、Raft書き込みコマンドとRaftスナップショットを適用することによるスループットが含まれます。
- インスタンスごとの書き込みコマンドOPS:インスタンスによって受信されたさまざまな種類のコマンドの総数。
write blockは、Raftを介して同期されたデータログを意味します。delete_rangeは、一部のリージョンがこのインスタンスから削除または移動されることを意味します。ingestは、一部のリージョンスナップショットがこのインスタンスに適用されることを意味します。
ラフト
- インデックスOPSの読み取り:各TiFlashインスタンスが1秒間に
read_indexのリクエストをトリガーする回数。これは、トリガーされるリージョンの数に相当します。 - 読み取りインデックス期間:すべてのTiFlashインスタンスで
read_indexが使用する時間。ほとんどの時間は、リージョンリーダーとのやり取りと再試行に使用されます。 - 待機インデックス期間:すべてのTiFlashインスタンスで
wait_indexが使用する時間、つまり、read_indexの要求が受信された後にローカルインデックス>=read_indexになるまで待機するために使用される時間。