TiKVの主要な監視指標
TiUPを使用してTiDBクラスターをデプロイする場合、監視システム(Prometheus/Grafana)も同時にデプロイされます。詳細については、 監視フレームワークの概要参照してください。
Grafanaダッシュボードは、Overview、PD、TiDB、TiKV、Node_exporter、Performance_overviewといった一連のサブダッシュボードに分かれています。診断に役立つ多くのメトリクスが用意されています。
TiKV詳細ダッシュボード
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 インスタンスのメモリ不足により拒否された logappend メッセージの数

サーバ
- 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使用率。通常、CPU使用率は90% *
raftstore.store-io-pool-size未満である必要があります。 - gRPC ポーリング CPU:
gRPCスレッドの CPU 使用率。通常、CPU 使用率は 80% *server.grpc-concurrency未満である必要があります。 - スケジューラワーカーCPU:
scheduler workerスレッドのCPU使用率。通常、CPU使用率は90% *storage.scheduler-worker-pool-size未満である必要があります。 - ストレージ読み取りプール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: 非同期 Rafflog フェッチャーワーカーの CPU 使用率
- TSOワーカーCPU:
TSO workerスレッドのCPU使用率
PD
- PDリクエスト: TiKVがPDに送信するレート
- PDリクエスト処理時間(平均): TiKVがPDに送信するリクエストの処理時間の平均
- PDハートビート: TiKVからPDにハートビートメッセージが送信される速度
- PD検証ピア: TiKVピアを検証するためにTiKVからPDにメッセージが送信される速度
RaftIO
- ログ適用期間: Raftがログを適用するのにかかる時間
- サーバーごとのログ適用期間: TiKVインスタンスごとにRaftがログを適用するのにかかる時間
- ログ追加時間: Raftがログを追加するのにかかる時間
- サーバーごとのログ追加時間: TiKVインスタンスごとにRaftがログを追加するのにかかる時間
- コミットログ期間: Raftがログをコミットするのにかかる時間
- サーバーごとのコミットログ期間: TiKVインスタンスごとにRaftがログをコミットするのにかかる時間

Raftプロセス
- 処理済み準備完了: 1 秒あたりに処理された準備完了操作の数
- count: 1秒あたりに処理された準備操作の数
- has_ready_region: 1秒あたりに準備完了しているリージョンの数
- pending_region: 準備完了を確認中のリージョンの1秒あたりの操作数。この指標はv3.0.0以降非推奨です。
- メッセージ: 1秒あたりの準備操作に含まれるメッセージの数
- append: 1秒あたりの準備操作に含まれるRaftログエントリの数
- コミット: 1秒あたりの準備操作に含まれるコミットされたRaftログエントリの数
- スナップショット: 1秒あたりの準備操作に含まれるスナップショットの数
- 0.99 Raftストアイベントの期間: 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秒あたりのエンジン非同期リクエストエラーの数
- ストレージ非同期スナップショット期間:非同期スナップショット要求の処理にかかる時間。3
.99の1s未満である必要があります。 - ストレージ非同期書き込み時間:非同期書き込みリクエストの処理にかかる時間。3
.99の1s未満である必要があります。

フロー制御
- スケジューラ フロー: 各 TiKV インスタンス上のスケジューラ トラフィック (リアルタイム)。
- スケジューラ破棄率: 各TiKVインスタンスにおけるスケジューラリクエストの拒否率。この比率が0より大きい場合、フロー制御が行われていることを示します。1
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秒あたりのコマンド数。短時間に大量のエラーが発生しないようにする必要があります。
- スケジューラコマンド実行時間: コミットコマンドの実行にかかる時間。1
1sである必要があります。 - スケジューララッチ待機時間:コミットコマンド実行時にラッチによって発生する待機時間。1
1sである必要があります。 - スケジューラキー読み取り:コミットコマンドによって読み取られたキーの数
- 書き込まれたスケジューラキー:コミットコマンドによって書き込まれたキーの数
- スケジューラ スキャンの詳細: キーは、コミット コマンドを実行するときに各 CF の詳細をスキャンします。
- スケジューラスキャンの詳細 [ロック]: コミットコマンドを実行するときに、キーはロックCFの詳細をスキャンします。
- スケジューラスキャンの詳細 [書き込み]: コミットコマンドを実行するときに、キーは書き込みCFの詳細をスキャンします。
- スケジューラスキャンの詳細 [デフォルト]: コミットコマンドを実行するときに、キーはデフォルトのCFの詳細をスキャンします。

スケジューラ - pessimistic_rollback
- スケジューラステージ合計:
pessimistic_rollbackコマンド実行時の各ステージにおける1秒あたりのコマンド数。短時間に大量のエラーが発生しないはずです。 - スケジューラコマンドの実行時間:
pessimistic_rollbackコマンドの実行にかかる時間。31sである必要があります。 - スケジューララッチ待機時間:コマンド
pessimistic_rollback実行時にラッチによって発生する待機時間。31sである必要があります。 - スケジューラキー読み取り:
pessimistic_rollbackコマンドで読み取られたキーの数 - 書き込まれたスケジューラキー:
pessimistic_rollbackコマンドによって書き込まれたキーの数 - スケジューラ スキャンの詳細: キーは、
pessimistic_rollbackコマンドを実行するときに各 CF の詳細をスキャンします。 - スケジューラスキャンの詳細 [ロック]: キーは、
pessimistic_rollbackコマンドを実行するときにロック CF の詳細をスキャンします。 - スケジューラスキャンの詳細 [書き込み]: キーは、
pessimistic_rollbackコマンドを実行するときに書き込みCFの詳細をスキャンします。 - スケジューラスキャンの詳細 [デフォルト]: キーは、
pessimistic_rollbackコマンドを実行するときにデフォルトの CF の詳細をスキャンします。
スケジューラ - 事前書き込み
- スケジューラステージ合計: プリライトコマンド実行時の各ステージにおける1秒あたりのコマンド数。短時間に大量のエラーが発生しないようにする必要があります。
- スケジューラコマンド実行時間: 事前書き込みコマンドの実行にかかる時間。1
1sである必要があります。 - スケジューララッチ待機時間:プリライトコマンド実行時にラッチによって発生する待機時間。1
1sである必要があります。 - スケジューラキー読み取り: 事前書き込みコマンドによって読み取られたキーの数
- 書き込まれたスケジューラキー: 事前書き込みコマンドによって書き込まれたキーの数
- スケジューラ スキャンの詳細: キーは、事前書き込みコマンドを実行するときに各 CF の詳細をスキャンします。
- スケジューラスキャンの詳細 [ロック]: キーは、prewrite コマンドを実行するときにロック CF の詳細をスキャンします。
- スケジューラスキャンの詳細 [書き込み]: キーは、書き込み前コマンドを実行するときに書き込みCFの詳細をスキャンします。
- スケジューラスキャンの詳細 [デフォルト]: キーは、prewrite コマンドを実行するときにデフォルトの CF の詳細をスキャンします。
スケジューラ - ロールバック
- スケジューラステージ合計: ロールバックコマンド実行時の各ステージにおける1秒あたりのコマンド数。短時間に大量のエラーが発生しないようにする必要があります。
- スケジューラコマンド実行時間: ロールバックコマンドの実行にかかる時間。1
1sである必要があります。 - スケジューララッチ待機時間:ロールバックコマンド実行時にラッチによって発生する待機時間。1
1sである必要があります。 - スケジューラキーの読み取り: ロールバックコマンドによって読み取られたキーの数
- 書き込まれたスケジューラキー: ロールバックコマンドによって書き込まれたキーの数
- スケジューラ スキャンの詳細: キーは、ロールバック コマンドを実行するときに各 CF の詳細をスキャンします。
- スケジューラスキャンの詳細 [ロック]: ロールバックコマンドを実行するときに、キーはロックCFの詳細をスキャンします。
- スケジューラスキャンの詳細 [書き込み]: ロールバックコマンドを実行するときに、キーは書き込みCFの詳細をスキャンします。
- スケジューラスキャンの詳細 [デフォルト]: ロールバックコマンドを実行するときに、キーはデフォルトのCFの詳細をスキャンします。
GC
- GCタスク: gc_workerによって処理されたGCタスクの数
- GCタスク期間: GCタスクの実行に要した時間
- TiDB GC秒数:GCの所要時間
- TiDB GCワーカーアクション: TiDB GCワーカーアクションの数
- ResolveLocks Progress: GC (Resolve Locks) の最初のフェーズの進行状況
- TiKV Auto GCの進捗状況: GCの第2フェーズの進捗状況
- GC速度: GCによって1秒あたりに削除されるキーの数
- TiKV自動GCセーフポイント: TiKV GCセーフポイントの値。セーフポイントは現在のGCタイムスタンプです。
- GC の有効期間: TiDB GC の有効期間
- GC間隔: TiDB GCの間隔
- 圧縮フィルター内の GC: 書き込み CF の圧縮フィルターでフィルターされたバージョンの数。
スナップショット
- スナップショットメッセージの送信レート: Raftショットメッセージが送信されるレート
- 99% スナップショット処理時間: スナップショットの処理に要した時間 (P99)
- スナップショット状態数: 状態ごとのスナップショットの数
- 99.99% スナップショットサイズ: スナップショットサイズ (P99.99)
- 99.99% スナップショット KV 数: スナップショット内の KV 数 (P99.99)
タスク
- ワーカーが処理したタスク: ワーカーが1秒あたりに処理したタスクの数
- ワーカーの保留タスク数: 1秒あたりのワーカーの保留中および実行中のタスク数。通常は
1000未満です。 - FuturePool が処理したタスク: FuturePool が 1 秒あたりに処理したタスクの数
- FuturePool の保留中のタスク: FuturePool の 1 秒あたりの保留中および実行中のタスクの現在の数
コプロセッサーの概要
- リクエスト期間: コプロセッサリクエストを受信してからリクエストの処理が完了するまでの合計期間
- 合計リクエスト数: 1秒あたりのリクエスト数(種類別)
- 処理時間: 1 分あたりにコプロセッサ要求を実際に処理するのにかかった時間のヒストグラム
- リクエストエラー総数:コプロセッサーの1秒あたりのリクエストエラー数。短時間に大量のエラーが発生することはありません。
- 合計 KV カーソル操作:
select、index、analyze_table、analyze_index、checksum_table、checksum_indexなど、1 秒あたりのタイプ別の KV カーソル操作の合計数。 - KV カーソル操作: 1 秒あたりの KV カーソル操作の種類別のヒストグラム
- RocksDBパフォーマンス統計合計: RocksDBパフォーマンスの統計
- 合計応答サイズ:コプロセッサ応答の合計サイズ
コプロセッサーの詳細
- 処理時間: 1 分あたりにコプロセッサ要求を実際に処理するのにかかった時間のヒストグラム
- ストア別の95%処理時間: TiKVインスタンスあたりのコプロセッサ要求の処理に1秒あたりに要した時間 (P95)
- 待機時間: コプロセッサ要求の処理待ち時間。1 (P99.99)
10sである必要があります。 - ストア別95%待機時間:コプロセッサ要求が処理されるのを待機している時間 (TiKVインスタンスあたり1秒あたり、P95)
- 合計DAGリクエスト数: 1秒あたりのDAGリクエスト数の合計
- DAGエグゼキューターの合計数: 1秒あたりのDAGエグゼキューターの合計数
- 合計操作の詳細(テーブルスキャン):コプロセッサで選択スキャンを実行する際の、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のヒット率
- ブロック キャッシュ サイズ:ブロックキャッシュサイズ。共有ブロックキャッシュが無効になっている場合は、カラムファミリーごとに分類されます。
- ブロックキャッシュヒット:ブロックキャッシュのヒット率
- ブロックキャッシュフロー:ブロックキャッシュ操作の種類ごとのフローレート
- ブロックキャッシュ操作: タイプごとのブロックキャッシュ操作の数
- キーフロー: キーの種類ごとの操作のフロー率
- 合計キー: 各カラムファミリー内のキーの数
- 読み取りフロー: タイプごとの読み取り操作のフローレート
- バイト / 読み取り: 読み取り操作あたりのバイト数
- 書き込みフロー: 書き込み操作の種類ごとのフローレート
- バイト / 書き込み: 書き込み操作あたりのバイト数
- 締固め流量: 締固め作業の種類ごとの流量
- 圧縮保留バイト数: 圧縮される保留バイト数
- 圧縮ジョブサイズ(ファイル): 1回の圧縮ジョブに含まれるSSTファイルの数
- リード増幅: TiKVインスタンスごとのリード増幅
- 圧縮率: 各レベルの圧縮率
- スナップショットの数: TiKVインスタンスあたりのスナップショットの数
- 最古のスナップショットの存続期間: 最も古い未リリースのスナップショットが存続する時間
- 各レベルのファイル数: 各レベルの異なる列ファミリの SST ファイルの数
- SST取り込み時間(秒): SST ファイルの取り込みにかかった時間
- 各 CF の失速条件が変更されました: 各カラムファミリーの失速条件が変更されました
Raft Engine
- オペレーション
- 書き込み: Raft Engineによる 1 秒あたりの書き込み操作の数
- read_entry: Raft Engineによる1秒あたりのRaftログ読み取り操作の数
- read_message: Raft Engineによる 1 秒あたりの Rought メタデータ読み取り操作の数
- 書き込み時間: Raft Engineによる書き込み操作の時間。この時間は、これらのデータの書き込みに関連するディスクIOのレイテンシーの合計にほぼ相当します。
- 流れ
- 書き込み: Raft Engineの書き込みトラフィック
- 書き換え追加: 書き換え追加ログのトラフィック
- 書き換え書き換え: 書き換えログの書き換えトラフィック
- 書き込み時間の内訳(99%)
- wal: Raft Engine WAL の書き込みのレイテンシー
- wait: 書き込み前の待機時間
- 適用: データをメモリに適用するのにかかる時間
- バイト数/書き込み: Raft Engineが毎回書き込むバイト数
- WAL 所要時間の内訳 (P99%): Raft EngineWAL の書き込みの各ステージで消費された時間
- ファイル数
- append: Raft Engineによってデータを追加するために使われるファイルの数
- rewrite: Raft Engineによってデータの書き換えに使用されるファイルの数 (rewrite は RocksDB の圧縮に似ています)
- エントリー数
- rewrite: Raft Engineによって書き換えられたエントリの数
- append: Raft Engineによって追加されたエントリの数
タイタン - すべて
- BLOBファイル数: Titan BLOBファイルの数
- BLOBファイルサイズ: Titan BLOBファイルの合計サイズ
- ライブBLOBサイズ: 有効なBLOBレコードの合計サイズ
- BLOBキャッシュヒット: Titanブロックキャッシュのヒット率
- 反復処理されたBLOBファイルの数: 単一の反復処理に関係するBLOBファイルの数
- BLOBファイルの破棄可能率の分布: BLOBファイルのBLOBレコードの失敗率の分布
- ブロブキーのサイズ: Titanブロブキーのサイズ
- BLOB値のサイズ: Titan BLOB値のサイズ
- BLOB 取得操作: Titan BLOB の取得操作の数
- BLOB 取得時間: Titan BLOB で取得操作を実行するときに消費される時間
- BLOB反復操作: Titan BLOBで反復操作を実行するときに消費される時間
- BLOBシーク時間: Titan BLOBでシーク操作を実行するときに消費される時間
- BLOBの次の処理時間: Titan BLOBで次の操作を実行するときにかかる時間
- BLOB前処理時間: Titan BLOBで前処理を実行するのにかかる時間
- ブロブキーフロー: Titanブロブキーの操作のフローレート
- BLOBバイトフロー: Titan BLOBキーのバイトフローレート
- BLOBファイルの読み取り時間: Titan BLOBファイルの読み取りにかかる時間
- BLOBファイルの書き込み時間: Titan BLOBファイルの書き込みにかかる時間
- BLOBファイル同期操作: 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使用率
- ロックマネージャが処理したタスク: ロックマネージャによって処理されたタスクの数
- 待機者の存続期間: ロックが解放されるまでのトランザクションの待機時間
- 待機テーブル: ロックの数やロックを待機しているトランザクションの数など、待機テーブルのステータス情報
- デッドロック検出時間:デッドロックの検出にかかる時間
- 検出エラー: デッドロックの検出時に発生したエラーの数(デッドロックの数を含む)
- デッドロック検出リーダー: デッドロック検出リーダーが配置されているノードの情報
- 悲観的ロックの合計メモリサイズ: メモリ内の悲観的ロックが占めるメモリサイズ
- メモリ内悲観的ロックの結果:悲観的ロックのみをメモリに保存した結果。1
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と現在の時刻との間の最大時間差 (リージョンリーダーのみ)
- 最小Leader解決TSリージョン:resolved-tsが最小であるリージョンのID(リージョンリーダーのみ)
- ロックヒープサイズ: resolved-tsモジュール内のロックを追跡するヒープのサイズ
メモリ
- アロケータ統計:メモリアロケータの統計
バックアップ
- バックアップCPU: バックアップスレッドのCPU使用率
- 範囲サイズ: バックアップ範囲サイズのヒストグラム
- バックアップ時間: バックアップにかかる時間
- バックアップフロー: バックアップの合計バイト数
- ディスクスループット: インスタンスあたりのディスクスループット
- バックアップ範囲期間: 範囲のバックアップにかかる時間
- バックアップエラー: バックアップ中に発生したエラーの数
暗号化
- 暗号化データキー: 暗号化されたデータキーの総数
- 暗号化されたファイル: 暗号化されたファイルの数
- 暗号化が初期化されました: 暗号化が有効かどうかを示します。1
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の最初のフェーズでコミットするデータを事前に書き込むコマンド
- 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ダッシュボード
QPSジッター、レイテンシージッター、レイテンシー増加傾向など、TiKVのパフォーマンス問題が発生した場合は、 TiKV-FastTuneダッシュボードを確認してください。このダッシュボードには、特にクラスター内の書き込みワークロードが中規模または大規模の場合に診断に役立つ一連のパネルが含まれています。
書き込み関連のパフォーマンス問題が発生した場合は、まずTiDB関連のダッシュボードを確認してください。問題がstorage側にある場合は、 TiKV-FastTuneページを開き、すべてのパネルを閲覧して確認してください。
TiKV-FastTuneダッシュボードには、パフォーマンスの問題の考えられる原因を示すタイトルが表示されます。その原因が正しいかどうかを確認するには、ページ上のグラフを確認してください。
グラフの左側のY軸はstorage側の書き込みRPC QPSを表し、右側のY軸上のグラフは上下逆さまに描かれています。左側のグラフの形状が右側のグラフの形状と一致する場合、示唆された原因は正しいです。
詳細なメトリックと説明については、ダッシュボードユーザーマニュアル参照してください。