TiKVの主要モニタリング指標
TiUPを使用して TiDB クラスターをデプロイすると、監視システム (Prometheus/Grafana) も同時にデプロイされます。詳細については、モニタリングフレームワークの概要ご覧ください。
Grafanaダッシュボードは、概要、PD、TiDB、TiKV、Node_exporter、パフォーマンス概要など、複数のサブダッシュボードに分かれています。診断に役立つ多くのメトリクスが用意されています。
TiKV-Detailsダッシュボード
TiKVコンポーネントのステータス概要は、主要な指標が表示されるTiKV詳細ダッシュボードで確認できます。
このセクションでは、TiKV-Detailsダッシュボード上のこれらの主要指標について詳しく説明します。
クラスタ
- ストアサイズ:TiKVインスタンスごとのstorageサイズ
- 利用可能なサイズ:TiKVインスタンスごとの利用可能な容量
- 容量サイズ:TiKVインスタンスごとの容量サイズ
- CPU: TiKVインスタンスごとのCPU使用率
- メモリ:TiKVインスタンスごとのメモリ使用量
- IO使用率:TiKVインスタンスごとのI/O使用率
- MBps: 各TiKVインスタンスにおける読み取りと書き込みの合計バイト数
- QPS: 各TiKVインスタンスにおけるコマンドあたりのQPS
- Errps: gRPCメッセージの失敗率
- リーダー: TiKVインスタンスごとのリーダーの数
- リージョン:TiKVインスタンスあたりのリージョン数
- 稼働時間:前回の再起動以降のTiKVの実行時間
エラー
- 重大なエラー: 重大なエラーの数
- サーバーがビジー状態です: 書き込み停止やチャネル満杯など、TiKV インスタンスが一時的に利用できなくなるイベントが発生したことを示します。通常の場合は
0となります。 - サーバー報告の失敗:サーバーによって報告されたエラー メッセージの数。通常は
0になります。 - Raftstoreエラー:各TiKVインスタンスにおけるタイプ別のRaftstoreエラー数
- スケジューラエラー: TiKVインスタンスごとに、タイプ別のスケジューラエラーの数
- コプロセッサーエラー:各TiKVインスタンスにおけるタイプ別のコプロセッサエラー数
- gRPCメッセージエラー:各TiKVインスタンスにおけるタイプ別のgRPCメッセージエラー数
- Leaderのドロップ数:TiKVインスタンスごとのドロップされたリーダーの数
- Leaderが見つからない: TiKVインスタンスごとのリーダーが見つからない数
- ログレプリケーション拒否: 各TiKVインスタンスでメモリ不足のために拒否されたログ追加メッセージの数
サーバ
- CFサイズ:各カラムファミリーのサイズ
- ストアサイズ:TiKVインスタンスごとのstorageサイズ
- チャネル満杯: TiKV インスタンスごとのチャネル満杯エラーの数。通常の場合は
0になります。 - アクティブな執筆リーダー: 各 TiKV インスタンスで執筆されているリーダーの数
- おおよそのリージョンサイズ:おおよそのリージョンサイズ
- おおよそのリージョンサイズヒストグラム:各おおよそのリージョンサイズのヒストグラム
- リージョン平均書き込みキー数:TiKVインスタンスごとにリージョンに書き込まれたキーの平均数
- リージョン平均書き込みバイト数:TiKVインスタンスごとのリージョンへの平均書き込みバイト数
gRPC
- gRPCメッセージ数:タイプごとのgRPCメッセージの発生率
- gRPCメッセージの失敗: gRPCメッセージの失敗率
- 99% gRPCメッセージ期間:メッセージタイプごとのgRPCメッセージ期間(P99)
- gRPCメッセージの平均実行時間:gRPCメッセージの平均実行時間
- gRPCバッチサイズ:TiDBとTiKV間のgRPCメッセージのバッチサイズ
- Raftメッセージのバッチサイズ:TiKVインスタンス間のRaftメッセージのバッチサイズ
- gRPCリクエストソースのQPS:gRPCリクエストソースのQPS
- gRPCリクエストソースの実行時間:gRPCリクエストソースの実行時間
- gRPCリソースグループQPS:リソースグループ別のgRPCリクエストソースのQPS
スレッドCPU
- Raftストア CPU:
raftstoreスレッドの CPU 使用率。通常の場合、CPU 使用率は 80% *raftstore.store-pool-size未満である必要があります。 - 非同期適用CPU:
async applyスレッドのCPU使用率。通常の場合、CPU使用率は90% *raftstore.apply-pool-size未満である必要があります。 - ストアライターCPU: 非同期IOスレッドのCPU使用率。通常の場合
raftstore.store-io-pool-sizeCPU使用率は90%未満である必要があります。 - gRPC poll CPU:
gRPCスレッドの CPU 使用率。通常の場合、CPU 使用率は 80% *server.grpc-concurrency未満である必要があります。 - スケジューラワーカーの CPU:
scheduler workerスレッドの CPU 使用率。通常の場合、CPU 使用率は 90% *storage.scheduler-worker-pool-size未満である必要があります。 - Storage ReadPool CPU:
storage read poolスレッドの CPU 使用率 - 統合読み取りプールCPU:
unified read poolスレッドのCPU使用率 - RocksDB CPU: RocksDBスレッドのCPU使用率
- コプロセッサーCPU:
coprocessorスレッドのCPU使用率 - GCワーカーCPU:
GC workerスレッドのCPU使用率 - バックグラウンドワーカーCPU:
background workerスレッドのCPU使用率 - CPU のインポート:
importスレッドの CPU 使用率 - バックアップワーカーCPU:
backupスレッドのCPU使用率 - CDCワーカーCPU:
CDC workerスレッドのCPU使用率 - CDCエンドポイントCPU:
CDC endpointスレッドのCPU使用率 - RaftlogフェッチワーカーのCPU使用率:非同期RaftログフェッチャーワーカーのCPU使用率
- TSOワーカーCPU:
TSO workerスレッドのCPU使用率
PD
- PDリクエスト:TiKVがPDに送信するレート
- PDリクエスト処理時間(平均):TiKVがPDに送信するリクエストの処理にかかる平均時間
- PDハートビート:TiKVからPDへハートビートメッセージが送信される頻度
- PDによるピアの検証:TiKVからPDへTiKVピアを検証するためにメッセージが送信される頻度
Raft IO
- ログ適用期間: Raftがログを適用するのにかかる時間
- サーバーごとのログ適用期間: RaftがTiKVインスタンスごとにログを適用するのにかかる時間
- ログ追加期間: Raftがログを追加するのにかかる時間
- サーバーごとのログ追加期間: RaftがTiKVインスタンスごとにログを追加するのにかかる時間
- コミットログの所要時間: Raftがログをコミットするのに要する時間
- サーバーごとのコミットログ期間: RaftがTiKVインスタンスごとにログをコミットするのに要する時間
Raftプロセス
- 処理済み準備完了: 1秒あたり、タイプごとに処理された準備完了操作の数
- count: 1秒あたりに処理された準備完了操作の数
- has_ready_region: 1秒あたりに準備完了状態にあるリージョンの数
- pending_region: 準備完了状態かどうかを確認しているリージョンの1秒あたりの操作数。このメトリックはv3.0.0以降非推奨です。
- メッセージ: 準備完了操作が1秒あたりに含むメッセージの数
- 追加: 準備完了操作が1秒あたりに含むRaftログエントリの数
- commit: 準備完了操作が1秒あたりにコミットするRaftログエントリの数
- スナップショット: 準備完了操作が1秒あたりに保持するスナップショットの数
- 0.99Raftストアイベントの所要時間:Raftstoreイベントにかかる時間(P99)
- プロセス準備完了までの時間: Raftでプロセスが準備完了になるまでにかかる時間
- サーバーごとのプロセス準備完了時間:TiKVインスタンスごとに、 Raftでピアプロセスが準備完了になるまでにかかる時間。2秒未満(P99.99)である必要があります。
- Raftストアイベントの最大継続時間:最も遅いRaftstoreイベントにかかる時間。
- レプリカ読み取りロックチェック時間:レプリカ読み取り処理時にロックをチェックするのに要する時間。
- ピアメッセージ長分布:各TiKVインスタンスの各リージョンで同時に処理されるメッセージ数。メッセージ数が多いほど、ピアの処理負荷が高くなります。
Raftメッセージ
- サーバーあたりの送信メッセージ数:各TiKVインスタンスが1秒あたりに送信するRaftメッセージの数
- サーバーごとのフラッシュメッセージ数:各TiKVインスタンスでRaftクライアントが1秒あたりにフラッシュするRaftメッセージの数
- サーバーごとの受信メッセージ数:各TiKVインスタンスが1秒あたりに受信するRaftメッセージの数
- メッセージ:1秒あたりに送信されるRaftメッセージの種類ごとの数
- 投票: Raftで1秒あたりに送信される投票メッセージの数
- Raftドロップメッセージ数: 1 秒あたりの、種類別のドロップされたRaftメッセージ数
Raftの提案
- Raft準備完了ごとの提案適用数: 提案適用中に、各準備完了操作がバッチ内に含める提案数のヒストグラム。
- Raftの読み書き提案:1秒あたりのタイプ別提案数
- サーバーごとのRaft読み取り提案数:各TiKVインスタンスが1秒あたりに行う読み取り提案の数
- サーバーごとのRaft書き込み提案数:各TiKVインスタンスが1秒あたりに行う書き込み提案の数
- 提案待ち時間:各提案の待ち時間のヒストグラム
- サーバーごとの提案待ち時間:TiKVインスタンスごとの各提案の待ち時間のヒストグラム
- 適用待ち時間:各提案の適用時間のヒストグラム
- サーバーごとの適用待ち時間:TiKVインスタンスごとの各提案の適用時間のヒストグラム
- Raftログ速度:ピアがログを提案する平均レート
Raft管理者
- 管理者提案:1秒あたりの管理者提案数
- 管理者適用: 1秒あたりに処理される適用コマンドの数
- チェック分割:1秒あたりのRaftstore分割チェックコマンドの数
- 99.99% チェック分割時間: 分割チェックコマンドの実行に要した時間 (P99.99)
地元読者
- ローカルリーダーリクエスト:ローカル読み取りスレッドからの総リクエスト数と拒否数
統合リードプール
- レベル別使用時間:統合リードプールにおける各レベルで消費された時間。レベル0は小規模クエリを意味します。
- レベル0の確率:統合リードプールにおけるレベル0タスクの割合
- 実行中のタスク:統合読み取りプールで同時に実行されているタスクの数
ストレージ
- ストレージコマンド合計:1秒あたりに受信したコマンドの種類別の数
- ストレージ非同期リクエストエラー:1秒あたりのエンジン非同期リクエストエラーの数
- ストレージ非同期スナップショット期間: 非同期スナップショット要求の処理に要する時間。
1s以内の.99未満である必要があります。 - ストレージ非同期書き込み時間: 非同期書き込みリクエストの処理に要する時間。
1s以内の.99未満である必要があります。
流量制御
- スケジューラフロー:各TiKVインスタンスにおけるスケジューラのトラフィックをリアルタイムで表示します。
- スケジューラ破棄率:各 TiKV インスタンスにおけるスケジューラ要求の拒否率。この比率が 0 より大きい場合、フロー制御が存在することを示します。
Compaction pending bytesがしきい値を超えると、TiKV は超過分に基づいてScheduler discard ratioを線形に増加させます。クライアントは拒否された要求を自動的に再試行します。 - スロットル期間:L0ファイルが多すぎるためにフロー制御がトリガーされた場合に、スケジューラ要求の実行がブロックされる期間。このメトリックに値がある場合、フロー制御が存在していることを示します。
- スケジューラによるスロットリングCF:フロー制御のしきい値に達したときにRocksDBのスロットリングをトリガーするCF。
- フローコントローラーのアクション:フロー制御のしきい値に達したときにRocksDBのスロットリングをトリガーするアクション。
- フラッシュ/L0フロー:各TiKVインスタンス上のRocksDBの異なるCFにおけるフラッシュとL0圧縮のトラフィック。
- フロー制御要因:RocksDBのスロットリングをトリガーする要因。
- コンパクション保留バイト数:各TiKVインスタンスでリアルタイムにコンパクション待ち状態にあるRocksDBデータのサイズ。
- トランザクションコマンドのスロットリング期間:スロットリングによりトランザクションに関連するコマンドがブロックされた期間。通常、このメトリックは0です。
- 非トランザクションコマンドのスロットリング期間:スロットリングによって他のコマンドがブロックされた期間。通常、このメトリックは0です。
スケジューラ
- スケジューラステージ合計:各ステージにおける1秒あたりのコマンド数。短時間で多くのエラーが発生するべきではありません。
- スケジューラ書き込みバイト数: 各TiKVインスタンスで処理されたコマンドによって書き込まれた合計バイト数
- スケジューラ優先度コマンド:1秒あたりの異なる優先度コマンドの数
- スケジューラ保留コマンド:TiKVインスタンスごとに1秒あたりに保留されているコマンドの数
スケジューラ - コミット
- スケジューラステージ合計:コミットコマンド実行時の、各ステージにおける1秒あたりのコマンド数。短時間で多くのエラーが発生するべきではありません。
- スケジューラコマンドの実行時間: コミットコマンドの実行に要する時間。
1s未満である必要があります。 - スケジューラ ラッチ待機時間: コミット コマンドの実行時にラッチによって発生する待機時間。
1sより小さくなければなりません。 - スケジューラキー読み取り数: コミットコマンドによって読み取られたキーの数
- スケジューラキー書き込み数: コミットコマンドによって書き込まれたキーの数
- スケジューラのスキャン詳細: commit コマンド実行時に各 CF のキースキャンの詳細を示します。
- スケジューラスキャン詳細[ロック]: コミットコマンド実行時のロックCFのキースキャン詳細
- スケジューラスキャン詳細[書き込み]: コミットコマンド実行時の書き込みCFのキースキャン詳細
- スケジューラスキャン詳細[デフォルト]: コミットコマンド実行時のデフォルトCFのキースキャン詳細
スケジューラ - 悲観的ロールバック
- スケジューラステージ合計:
pessimistic_rollbackコマンド実行時の、各ステージにおける1秒あたりのコマンド数。短時間で多くのエラーが発生するべきではありません。 - スケジューラコマンドの実行時間:
pessimistic_rollbackコマンドの実行に要する時間。1sより短くなければなりません。 - スケジューラ ラッチ待機時間:
pessimistic_rollbackコマンドの実行時にラッチによって発生する待機時間。1sより短くする必要があります。 - スケジューラキー読み取り:
pessimistic_rollbackコマンドによって読み取られたキーの数 - スケジューラキー書き込み数:
pessimistic_rollbackコマンドによって書き込まれたキーの数 - スケジューラのスキャン詳細:
pessimistic_rollbackコマンドを実行する際の各 CF のキーのスキャン詳細。 - スケジューラスキャンの詳細[ロック]:
pessimistic_rollbackコマンド実行時のロック CF のキースキャンの詳細 - スケジューラのスキャン詳細[書き込み]:
pessimistic_rollbackコマンド実行時の書き込み CF のキー スキャン詳細 - スケジューラのスキャン詳細[デフォルト]:
pessimistic_rollbackコマンド実行時のデフォルト CF のキー スキャン詳細
スケジューラ - 事前書き込み
- スケジューラステージ合計:プリライトコマンド実行時の、各ステージにおける1秒あたりのコマンド数。短時間で多くのエラーが発生するべきではありません。
- スケジューラコマンドの実行時間: プリライトコマンドの実行に要する時間。
1s未満である必要があります。 - スケジューラ ラッチ待機時間: プリライト コマンドの実行時にラッチによって発生する待機時間。
1sより小さくなければなりません。 - スケジューラキー読み取り数:プリライトコマンドによって読み取られたキーの数
- スケジューラキー書き込み数:プリライトコマンドによって書き込まれたキーの数
- スケジューラのスキャン詳細:プリライトコマンド実行時の各CFのキースキャン詳細。
- スケジューラスキャン詳細[ロック]: プリライトコマンド実行時のロックCFのキースキャン詳細
- スケジューラスキャン詳細[書き込み]: プリライトコマンド実行時の書き込みCFのキースキャン詳細
- スケジューラスキャン詳細[デフォルト]: プリライトコマンド実行時のデフォルトCFのキースキャン詳細
スケジューラ - ロールバック
- スケジューラステージ合計:ロールバックコマンド実行時の、各ステージにおける1秒あたりのコマンド数。短時間で多くのエラーが発生するべきではありません。
- スケジューラコマンドの実行時間: ロールバックコマンドの実行に要する時間。
1s未満である必要があります。 - スケジューラ ラッチ待機時間: ロールバック コマンドの実行時にラッチによって発生する待機時間。
1sより小さくなければなりません。 - スケジューラキー読み取り数:ロールバックコマンドによって読み取られたキーの数
- スケジューラキー書き込み数: ロールバックコマンドによって書き込まれたキーの数
- スケジューラのスキャン詳細: ロールバックコマンド実行時に各CFのキースキャンの詳細を示します。
- スケジューラスキャン詳細[ロック]: ロールバックコマンド実行時のロックCFのキースキャン詳細
- スケジューラスキャン詳細[書き込み]: ロールバックコマンド実行時の書き込みCFのキースキャン詳細
- スケジューラスキャンの詳細[デフォルト]: ロールバックコマンド実行時のデフォルトCFのキースキャンの詳細
GC
- GCタスク: gc_workerによって処理されたGCタスクの数
- GCタスクの実行時間:GCタスクの実行に要する時間
- TiDB GC秒数:GCの所要時間
- TiDB GCワーカーアクション:TiDB GCワーカーアクションの回数
- ResolveLocksの進捗状況:GCの第一段階(Resolve Locks)の進捗状況
- TiKV自動GCの進捗状況:GCの第2段階の進捗状況
- GC速度:1秒あたりにGCによって削除されるキーの数
- TiKV Auto GC SafePoint: TiKV GCセーフポイントの値。セーフポイントは現在のGCタイムスタンプです。
- GCの寿命:TiDB GCの寿命
- GC間隔:TiDB GCの間隔
- コンパクションフィルタ内のGC: write CFのコンパクションフィルタでフィルタリングされたバージョンの数。
スナップショット
- スナップショットメッセージの送信レート: Raftスナップショットメッセージが送信される頻度
- スナップショット処理時間(99%):スナップショットの処理にかかる時間(P99)
- スナップショット状態数:状態ごとのスナップショット数
- スナップショットサイズ: スナップショットサイズ (P99.99)
- 99.99%スナップショットKV数:スナップショット内のKV数(P99.99)
タスク
- ワーカーが処理したタスク数:ワーカーが1秒あたりに処理したタスク数
- ワーカーの保留中のタスク: ワーカーが1秒あたりに処理している保留中および実行中のタスクの現在の数。通常は
1000未満である必要があります。 - FuturePoolが処理したタスク数:FuturePoolが1秒あたりに処理したタスク数
- FuturePoolの保留中のタスク:FuturePoolの保留中および実行中のタスクの現在の数(1秒あたり)
コプロセッサーの概要
- リクエスト処理時間:コプロセッサからのリクエストを受信してから、リクエストの処理が完了するまでの合計時間
- 総リクエスト数:1秒あたりのリクエストの種類別数
- 処理時間:コプロセッサ要求を実際に処理した時間(1分あたり)のヒストグラム
- 総リクエストエラー数:コプロセッサーが1秒あたりに発生させたリクエストエラーの数。短時間に多数のエラーが発生するべきではありません。
- 合計 KV カーソル操作: 1 秒あたりのタイプ別の KV カーソル操作の合計数。例
select、index、analyze_table、analyze_index、checksum_table、checksum_index。 - KVカーソル操作:1秒あたりのタイプ別KVカーソル操作のヒストグラム
- RocksDBのパフォーマンス統計:RocksDBのパフォーマンスに関する統計情報
- 応答の合計サイズ:コプロセッサ応答の合計サイズ
コプロセッサーの詳細
- 処理時間:コプロセッサ要求を実際に処理した時間(1分あたり)のヒストグラム
- ストアごとの処理時間(95%):TiKVインスタンスごとに、コプロセッサ要求を処理するのに要する時間(1秒あたり)(P95)
- 待機時間: コプロセッサ要求が処理されるのを待っている間に消費される時間。
10s(P99.99) 未満である必要があります。 - ストア別待機時間(95%):コプロセッサ要求が処理待ち状態にある時間(TiKVインスタンスごと、1秒あたり)(P95)
- 総DAGリクエスト数:1秒あたりのDAGリクエストの総数
- 総DAG実行者数:1秒あたりのDAG実行者の総数
- 総操作数(テーブルスキャン):コプロセッサでselectスキャンを実行する際の、1秒あたりのRocksDB内部操作数
- 総操作詳細(インデックススキャン):コプロセッサでインデックススキャンを実行する際の、1秒あたりのRocksDB内部操作の数
- CFごとの総操作詳細(テーブルスキャン):コプロセッサで選択スキャンを実行する際の、各CFにおける1秒あたりのRocksDB内部操作の数
- CFごとの総操作詳細(インデックススキャン):コプロセッサでインデックススキャンを実行する際の、各CFにおける1秒あたりのRocksDB内部操作の数
スレッド
- スレッドの状態:TiKVスレッドの状態
- スレッドIO:各TiKVスレッドのI/Oトラフィック
- スレッドの自発的コンテキストスイッチ: TiKVスレッドの自発的コンテキストスイッチの数
- スレッドの非自発的コンテキストスイッチ: TiKVスレッドの非自発的コンテキストスイッチの数
RocksDB - kv/raft
- 取得操作: 1秒あたりの取得操作の回数
- 取得時間:取得操作の実行に要した時間
- シーク操作:1秒あたりのシーク操作回数
- シーク時間:シーク操作の実行に要する時間
- 書き込み操作:1秒あたりの書き込み操作回数
- 書き込み時間:書き込み操作の実行に要する時間
- WAL同期操作:1秒あたりのWAL同期操作の回数
- WAL書き込み時間:WALの書き込みに要した時間
- WAL同期時間:WAL同期操作の実行に要する時間
- 圧縮作業:1秒あたりの圧縮および洗浄作業の回数
- 圧縮時間:圧縮および洗浄作業の実行に要する時間
- SSTファイルの読み込み時間:SSTファイルの読み込みに要する時間
- 停止時間を書き込む: 停止時間を書き込む。通常の場合は
0となるはずです。 - Memtableサイズ:各カラムファミリーのmemtableサイズ
- Memtableヒット:memtableのヒット率
- ブロックキャッシュサイズ:ブロックキャッシュのサイズ。共有ブロックキャッシュが無効になっている場合は、カラムファミリーごとに内訳が表示されます。
- ブロックキャッシュヒット:ブロックキャッシュのヒット率
- ブロックキャッシュフロー:タイプごとのブロックキャッシュ操作のフローレート
- ブロックキャッシュ操作: タイプごとのブロックキャッシュ操作の回数
- キーフロー:キーの種類ごとの操作フローレート
- 合計キー数:各カラムファミリー内のキーの数
- 読み取りフロー:タイプごとの読み取り操作のフローレート
- バイト/読み取り:読み取り操作1回あたりのバイト数
- 書き込みフロー:タイプごとの書き込み操作のフローレート
- バイト/書き込み: 書き込み操作あたりのバイト数
- 圧縮フロー:タイプ別の圧縮作業のフローレート
- 圧縮保留バイト数:圧縮対象となる保留バイト数
- 圧縮ジョブのサイズ(ファイル数):単一の圧縮ジョブに関係するSSTファイルの数
- リード増幅率: TiKVインスタンスごとのリード増幅率
- 圧縮率:各レベルの圧縮率
- スナップショット数:TiKVインスタンスごとのスナップショット数
- 最古のスナップショットの存続期間:最も古い未公開のスナップショットが存続している期間
- 各レベルのファイル数:各レベルにおける異なる列ファミリーのSSTファイルの数
- SSTファイルの取り込み時間(秒):SSTファイルの取り込みにかかる時間
- 各CFの失速条件が変更されました:各カラムファミリーの失速条件が変更されました
Raft Engine
- 業務
- write: Raft Engineによる1秒あたりの書き込み操作数
- read_entry: Raft Engineによる1秒あたりのRaftログ読み取り操作数
- read_message: Raft Engineによる1秒あたりのRaftメタデータ読み取り操作の数
- 書き込み時間: Raft Engineによる書き込み操作にかかる時間。この時間は、これらのデータの書き込みに関わるディスクI/Oのレイテンシーの合計値にほぼ相当します。
- 流れ
- 書き込み: Raft Engineの書き込みトラフィック
- リライト追加: リライト追加ログのトラフィック
- リライト リライト: リライトのトラフィック リライトログ
- 書き込み時間の内訳(99%)
- wal: Raft Engine WAL の書き込みレイテンシー
- 待機: 書き始める前の待ち時間
- apply:メモリにデータを適用するのにかかる時間
- バイト/書き込み: Raft Engineが毎回書き込むバイト数
- WAL 所要時間の内訳 (P99%): Raft Engine WAL 作成の各段階に要した時間
- ファイル数
- append: Raft Engineがデータ追加に使用するファイルの数
- rewrite: Raft Engineによるデータ書き換えに使用されるファイルの数(rewriteはRocksDBの圧縮に類似しています)
- エントリー数
- rewrite: Raft Engineによって書き換えられたエントリの数
- append: Raft Engineによって追加されたエントリの数
タイタン - すべて
- Blobファイル数:Titan Blobファイルの数
- Blobファイルサイズ:Titan Blobファイルの合計サイズ
- ライブブロブサイズ:有効なブロブレコードの合計サイズ
- ブロブキャッシュヒット:Titanブロックキャッシュのヒット率
- イテレータが触れたブロブファイルの数:単一のイテレータに関係するブロブファイルの数
- Blobファイル破棄率分布:BLOBファイルのBLOBレコード障害率分布
- ブロブキーのサイズ:Titanブロブキーのサイズ
- Blob値のサイズ:Titan Blob値のサイズ
- Blob取得操作: Titan Blobにおける取得操作の回数
- Blob取得時間:Titan Blobで取得操作を実行する際に消費される時間
- Blobイテレーション操作:Titan Blobでイテレーション操作を実行する際に消費される時間
- ブロブシーク時間:Titanブロブでシーク操作を実行する際に消費される時間
- Blob 次の実行時間: Titan Blob で次の操作を実行する際に消費される時間
- Blob prev duration: Titan blob で prev 操作を実行するのに要した時間
- ブロブキーフロー:Titanブロブキーに対する操作のフローレート
- Blobバイトフロー:Titan Blobキー上のバイトフローレート
- Blobファイル読み取り時間:Titan Blobファイルの読み取りに要した時間
- Blobファイル書き込み時間:Titan Blobファイルの書き込みに要した時間
- ブロブファイル同期操作: ブロブファイル同期操作の回数
- Blobファイル同期時間:Blobファイルの同期にかかる時間
- Blob GCアクション:Titan GCアクションの回数
- Blob GC 期間: Titan GC 期間
- Blob GCキーフロー:Titan GCによって読み書きされるキーのフローレート
- Blob GC バイトフロー: Titan GC によって読み書きされるバイトのフローレート
- Blob GC入力ファイルサイズ:Titan GC入力ファイルのサイズ
- Blob GC出力ファイルサイズ:Titan GC出力ファイルのサイズ
- Blob GC ファイル数: Titan GC に関与する Blob ファイルの数
インメモリエンジン
次のメトリクスは、 TiKV MVCC インメモリエンジン(IME) に関連しています。
- Ops: 列ファミリーの1秒あたりの操作数
- 読み取りMBps:RocksDBとインメモリエンジンにおける読み取りトラフィックの総バイト数
- コプロセッサー処理時間:コプロセッサ要求の処理に要する時間
- リージョンキャッシュヒット数:リージョンキャッシュからデータが正常に取得された回数
- リージョンキャッシュヒット率:リージョンキャッシュのヒット率
- リージョンキャッシュミス理由:リージョンキャッシュからデータが取得されない理由
- メモリ使用量:インメモリエンジンのメモリ使用量
- リージョン数:異なる種類の地域の数
- GCフィルタ:ガベージコレクション(GC)中のフィルタリングプロセスに関する情報
- リージョンGCの所要時間:リージョンGCに要した時間
- リージョン読み込み時間:リージョンの読み込みにかかる時間
- リージョンロード数:1秒あたりにロードされるリージョンの数
- リージョン退去期間:地域を退去させるのにかかる時間
- リージョン退去数:1秒あたりに退去させられた地域の数
- 書き込み時間:リージョンキャッシュエンジンでの書き込み操作にかかる時間
- サーバーごとのインメモリエンジン書き込み時間(99%):インメモリエンジンにおけるTiKVサーバーごとの書き込み時間の99パーセンタイル値
- 書き込み準備時間:インメモリエンジンで書き込み操作を準備するのに要する時間
- サーバーごとのインメモリエンジン書き込み準備時間(99%):インメモリエンジンにおけるTiKVサーバーごとの書き込み操作準備に要した時間の99パーセンタイル値
- イテレータ操作:イテレータ操作の種類数
- シーク時間:シーク操作に要する時間
- 最古の自動GCセーフポイント:メモリ内エンジンにキャッシュされたリージョンの最古の自動GCセーフポイント
- 最新の自動GCセーフポイント:メモリ内エンジンにキャッシュされたリージョン用の最新の自動GCセーフポイント
- 自動GCセーフポイントギャップ:インメモリエンジンにキャッシュされたリージョンについて、最新の自動GCセーフポイントと最も古い自動GCセーフポイントの間の時間差。
- TiKV を使用した自動 GC セーフポイントのギャップ: インメモリ エンジンにキャッシュされたリージョンについて、TiKV の自動 GC セーフポイントと最も古い自動 GC セーフポイントとの間のギャップ。
悲観的ロック
- ロックマネージャスレッドのCPU使用率:ロックマネージャスレッドのCPU使用率
- ロックマネージャが処理したタスク数:ロックマネージャが処理したタスクの数
- 待機時間の持続時間:トランザクションがロックを解除するまでの待機時間
- 待機テーブル:待機テーブルの状態情報。ロックの数や、ロックを待っているトランザクションの数などが含まれます。
- デッドロック検出時間:デッドロックを検出するのに要した時間
- 検出エラー: デッドロック検出時に発生したエラーの数(デッドロックの数を含む)
- デッドロック検出リーダー: デッドロック検出リーダーが配置されているノードの情報
- 合計悲観的ロックのメモリサイズ:メモリ内の悲観的ロックが占めるメモリサイズ
- インメモリ悲観的ロックの結果:悲観的ロックのみをメモリに保存した結果。
fullは、メモリ制限を超えたために悲観的ロックがメモリに保存されなかった回数を意味します。
解決済みTS
- 解決済みTSワーカーCPU:resolved-tsワーカースレッドのCPU使用率
- Advance-TSワーカーCPU:Advance-TSワーカースレッドのCPU使用率
- スキャンロックワーカーCPU:スキャンロックワーカースレッドのCPU使用率
- resolved-tsの最大ギャップ:このTiKV内のすべてのアクティブ領域のresolved-tsと現在時刻との間の最大時間差
- 安全時刻の最大差: この TiKV 内のすべてのアクティブな領域の安全時刻と現在時刻との間の最大時間差
- 最小解決TSリージョン:resolved-tsが最小であるリージョンのID
- 最小安全TSリージョン:安全TSが最小であるリージョンのID
- Leader処理時間:リーダー要求の処理に費やされた時間の分布。処理時間は、要求の送信からリーダーでの応答の受信までの時間です。
- リージョンリーダーにおけるresolved-tsの最大ギャップ:このTiKV内のすべてのアクティブなリージョンのresolved-tsと現在時刻との間の最大時間差(リージョンリーダーのみ)。
- Min Leader Resolved TS リージョン :resolved-tsが最小値であるリージョンのID (リージョンリーダーのみ)。
- ロックヒープサイズ: resolved-tsモジュールでロックを追跡するヒープのサイズ
メモリ
- アロケータ統計:メモリ割り当ての統計情報
バックアップ
- バックアップCPU:バックアップスレッドのCPU使用率
- 範囲サイズ:バックアップ範囲サイズのヒストグラム
- バックアップ時間:バックアップにかかる時間
- バックアップフロー:バックアップの合計バイト数
- ディスクスループット:インスタンスあたりのディスクスループット
- バックアップ範囲の所要時間:範囲のバックアップにかかる時間
- バックアップエラー:バックアップ中に発生したエラーの数
暗号化
- 暗号化データキー:暗号化されたデータキーの総数
- 暗号化されたファイル:暗号化されたファイルの数
- 暗号化が初期化されました: 暗号化が有効になっているかどうかを示します。
1は有効であることを意味します。 - 暗号化メタファイルのサイズ:暗号化メタファイルのサイズ
- データの暗号化/復号化ナノ秒:データの暗号化/復号化にかかる時間のヒストグラム
- 暗号化メタファイルの読み書きにかかる時間:暗号化メタファイルの読み書きに要する時間
ログバックアップ
- イベント処理速度:書き込みイベントの処理速度
- 初期スキャン生成イベントスループット:新しいリスナーストリームを生成する際の、段階的なスキャン速度
- 異常なチェックポイントTSラグ:各タスクの現在のチェックポイントTSと現在時刻とのラグ
- イベントメモリ:増分スキャンによって生成された一時データが占めるメモリの推定量
- 観測されたリージョン数:現在視聴されているリージョンの数
- エラー:再試行可能なエラーおよび致命的ではないエラーの数と種類
- 致命的なエラー:発生した致命的なエラーの数と種類。通常、致命的なエラーが発生すると、タスクは一時停止します。
- タスクのチェックポイントTS:各タスクのチェックポイントTS
- フラッシュ時間:キャッシュされたデータを外部storageに移動するのにかかる時間を示すヒートマップ
- 初期スキャン時間:新しいリスニングストリームを作成する際の増分スキャンにかかる時間を示すヒートマップ
- Raftイベント変換時間:リスニングストリームを作成した後、 Raftログエントリをバックアップデータに変換するのにかかる時間を示すヒートマップ
- コマンドバッチサイズ:リスニング中のRaftコマンドのバッチサイズ(単一のRaftグループ内)
- 一時ファイルへの保存時間:バックアップデータのバッチ(複数のタスクにまたがる)を一時ファイル領域に一時的に保存するのにかかる時間を示すヒートマップ
- 一時ファイルへの書き込み時間:特定のタスクからのバックアップデータのバッチを一時ファイル領域に一時的に保存するのにかかる時間を示すヒートマップ
- システム書き込み呼び出し時間:リージョンからバックアップデータのバッチを一時ファイルに書き込むのにかかる時間を示すヒートマップ
- 内部メッセージタイプ:TiKV内でログバックアップを担当するアクターが受信するメッセージの種類
- 内部メッセージ処理時間(P90|P99):各タイプのメッセージの消費および処理速度
- RocksDBの初期スキャンスループット:増分スキャン中にRocksDB内部ログによって生成される読み取りトラフィック
- 初期スキャン RocksDB 操作: 増分スキャン中に RocksDB が内部的にログに記録した個々の操作の数
- 初期スキャン開始理由:増分スキャンを開始する理由
- リージョンチェックポイントキーの配置: PDに記録されたチェックポイント操作の数
注記:
以下の監視メトリクスはすべてTiDBノードをデータソースとして使用しますが、ログバックアッププロセスに多少の影響を与えます。そのため、参照しやすいようにTiKVの詳細ダッシュボードに配置されています。TiKVはほとんどの場合、進捗状況を積極的にプッシュしますが、以下の監視メトリクスの一部でサンプリングされたデータが一時的に取得されないのは正常な動作です。
- リクエストチェックポイントバッチサイズ:ログバックアップコーディネーターが各TiKVのチェックポイント情報を要求する際のリクエストバッチサイズ
- ティック期間 [P99|P90]: コーディネーター内のティックにかかる時間
- リージョンチェックポイント失敗理由:リージョンチェックポイントがコーディネーター内で進行できない理由
- リクエスト結果:コーディネーターがリージョンチェックポイントを前進させた際の成功または失敗の記録
- リージョンオペレーション回数の取得:コーディネーターがPDからリージョン情報を要求した回数
- アドバンストリガー時間:コーディネーターがチェックポイントを進めることを試みるまでにかかる時間
バックアップとインポート
- インポート時のCPU使用率:SSTインポーターによって集計されたCPU使用率。
- インポートスレッド数:SSTインポーターが使用するスレッドの数。
- インポートエラー:SSTインポート中に発生したエラーの数。
- インポートRPC実行時間:SSTインポーターにおける様々なRPC呼び出しに費やされた時間。
- インポートRPC操作:SSTインポーターにおけるRPC呼び出しの総数。
- インポートRPCカウント:SSTインポーターによって処理されているRPC呼び出しの数。
- インポート書き込み/ダウンロードRPC時間:SSTインポーターにおける書き込みまたはダウンロード操作のRPC時間。
- インポート待機時間:ダウンロードタスクの実行待ち時間。
- SSTファイルのインポート読み込み時間:外部storageからSSTファイルを読み込み、TiKVにダウンロードするのに要した時間。
- インポート書き換えSST時間:書き換えルールに基づいてSSTファイルを書き換えるのに要した時間。
- インポート取り込みRPC処理時間:TiKV上で取り込みRPCリクエストを処理するのに費やされた時間。
- SSTファイルのインポート取り込み時間:SSTファイルをRocksDBに取り込むのに要した時間。
- インポート取り込みSSTバイト数:取り込まれたバイト数。
- インポートダウンロードSSTスループット:SSTのダウンロードスループット(バイト/秒)。
- クラウドリクエスト:クラウドプロバイダーへのリクエスト数。
特定時点復元
- CPU使用率:ポイントインタイムリカバリ(PITR)によるCPU使用率。
- P99 RPC期間:RPCリクエスト期間の99パーセンタイル値。
- インポートRPC操作:SSTインポーターにおけるRPC呼び出しの総数。
- インポートRPCカウント:SSTインポーターによって処理されているRPC呼び出しの数。
- キャッシュイベント:SSTインポート中にファイルキャッシュに保存されたイベントの数。
- RPC全体の実行時間:RPC呼び出しに費やされた時間。
- ファイルをメモリに読み込む時間: 外部storageからファイルをダウンロードしてメモリに読み込むのにかかる時間。
- キューイング時間:スレッドにスケジュールされるのを待つ時間。
- リクエスト処理スループット:リクエストを適用する速度(バイト単位)。
- ダウンロードされたファイルのサイズ:ダウンロードされたファイルのサイズ(バイト単位)。
- 適用バッチサイズ:1回のバッチでRaftストアに適用するバイト数。
- 並行処理によるブロック時間:並行処理の制約により実行を待機するのに費やされた時間。
- リクエスト適用速度: Raftストアへのリクエスト適用速度。
- メモリにキャッシュされたファイル:SSTインポーターのリクエストによってキャッシュされたファイル。
- エンジンリクエスト未完了: Raftストアへの保留中のリクエスト数。
- 適用時間: Raftストアにデータを書き込むのに費やされた時間。
- Raftストアのメモリ使用量: Raftストアのメモリ使用量。
共通パラメータの説明
gRPCメッセージタイプ
トランザクションAPI:
- kv_get:
tsで指定された最新バージョンのデータを取得するコマンド - kv_scan: データ範囲をスキャンするコマンド
- kv_prewrite: 2PCの第1フェーズでコミットするデータを事前に書き込むコマンド
- kv_pessimistic_lock: キーに悲観的ロックを追加して、他のトランザクションがこのキーを変更するのを防ぐコマンド。
- kv_pessimistic_rollback: キーの悲観的ロックを削除するコマンド
- kv_txn_heart_beat:悲観的トランザクションまたは大規模トランザクションのロールバックを防ぐために、
lock_ttlを更新するコマンド。 - kv_check_txn_status: トランザクションのステータスを確認するコマンド
- kv_commit: prewriteコマンドによって書き込まれたデータをコミットするコマンド
- kv_cleanup: トランザクションをロールバックするコマンド。v4.0で非推奨になりました。
- kv_batch_get:
kv_getと同様に、バッチキーの値を一度に取得するコマンドです。 - kv_batch_rollback: 複数のプリライトトランザクションのバッチロールバックコマンド
- kv_scan_lock: 期限切れのトランザクションをクリーンアップするために、バージョン番号が
max_versionより前のすべてのロックをスキャンするコマンド - kv_resolve_lock: トランザクションの状態に応じて、トランザクションロックをコミットまたはロールバックするコマンド。
- kv_gc: GCのコマンド
- kv_delete_range: TiKVからデータ範囲を削除するコマンド
- kv_get:
生のAPI:
- raw_get: キーの値を取得するコマンド
- raw_batch_get: バッチキーの値を取得するコマンド
- raw_scan: データ範囲をスキャンするコマンド
- raw_batch_scan: 連続する複数のデータ範囲をスキャンするコマンド
- raw_put: キー/値ペアを書き込むコマンド
- raw_batch_put: キーと値のペアのバッチを書き込むコマンド
- raw_delete: キー/値ペアを削除するコマンド
- raw_batch_delete: キーと値のペアのバッチを削除するコマンド
- raw_delete_range: データ範囲を削除するコマンド
TiKV-FastTuneダッシュボード
TiKVのパフォーマンスに関する問題(QPSジッター、レイテンシージッター、レイテンシー増加傾向など)が発生した場合は、 TiKV-FastTuneダッシュボードを確認してください。このダッシュボードには、特にクラスタ内の書き込みワークロードが中規模または大規模の場合に、診断に役立つ一連のパネルが含まれています。
書き込み関連のパフォーマンス問題が発生した場合は、まずTiDB関連のダッシュボードを確認してください。storage側に問題がある場合は、 TiKV-FastTuneページを開き、すべてのパネルを確認してください。
TiKV-FastTuneのダッシュボードには、パフォーマンス問題の考えられる原因を示すタイトルが表示されます。提示された原因が正しいかどうかを確認するには、ページ上のグラフを確認してください。
グラフの左側のY軸はstorage側の書き込みRPC QPSを表し、右側のY軸上のグラフは上下反転して描かれています。左側のグラフの形状が右側のグラフの形状と一致する場合、示唆された原因は正しいと言えます。
詳細なメトリクスと説明については、ダッシュボードユーザーマニュアルを参照してください。












