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
未満になります。 - Storage ReadPool CPU:
storage read pool
スレッドの CPU 使用率 - 統合読み取りプール CPU:
unified read pool
スレッドの CPU 使用率 - RocksDB CPU: RocksDB スレッドの CPU 使用率
- コプロセッサーCPU:
coprocessor
スレッドの CPU 使用率 - GC ワーカー CPU:
GC worker
スレッドの CPU 使用率 - BackGround ワーカー 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 ピアを検証するために TiKV から PD にメッセージが送信される速度。
RaftIO
- ログ適用期間: Raft がログを適用するのにかかる時間
- サーバーのログ適用期間 : Raft がTiKV インスタンスごとにログを適用するのにかかる時間
- ログの追加期間: Raft がログを追加するのにかかる時間
- サーバーの追加ログ期間 : Raft がTiKV インスタンスごとにログを追加するのにかかる時間
- コミットログ期間: Raftがログをコミットするために費やした時間
- サーバーのコミットログ期間: TiKV インスタンスごとにログをコミットするためにRaftが消費した時間
Raftプロセス
- 処理済み準備完了: タイプごと、1 秒あたりに処理された準備完了操作の数
- count: 1 秒あたりに処理された準備完了オペレーションの数
- has_ready_region: 1 秒あたりの準備ができているリージョンの数
- pending_region: 準備ができているかどうかを確認するリージョンの 1 秒あたりの操作数。このメトリクスは v3.0.0 以降非推奨になりました
- message: 1 秒あたりの準備完了オペレーションに含まれるメッセージの数
- append: 1 秒あたりの準備完了オペレーションに含まれるRaftログ エントリの数
- commit: 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メッセージの数
- Vote: Raftで送信される 1 秒あたりの Vote メッセージの数
- Raftドロップされたメッセージ: タイプごと、1 秒あたりにドロップされたRaftメッセージの数
Raftが提案する
- Raft は、準備完了ごとにプロポーザルを適用します。プロポーザルの適用中にバッチに含まれる各準備完了操作に含まれるプロポーザルの数のヒストグラム。
- Raft読み取り/書き込みプロポーザル: 1 秒あたりのタイプごとのプロポーザルの数
- サーバーごとのRaft読み取りプロポーザル: 各 TiKV インスタンスによって 1 秒あたりに行われた読み取りプロポーザルの数
- サーバーあたりのRaft書き込みプロポーザル : 各 TiKV インスタンスによって 1 秒あたりに行われた書き込みプロポーザルの数
- 提案待機時間: 各提案の待機時間のヒストグラム
- サーバーごとの提案待機時間 : TiKV インスタンスごとの各提案の待機時間のヒストグラム
- 適用待機期間: 各プロポーザルの適用時間のヒストグラム
- サーバーごとの適用待機時間: TiKV インスタンスごとの各プロポーザルの適用時間のヒストグラム
- Raftログ速度: ピアがログを提案する平均速度
Raft管理者
- 管理者提案: 1 秒あたりの管理者提案数
- Admin apply: 1 秒あたりに処理された適用コマンドの数
- チェック スプリット: 1 秒あたりのRaftstoreスプリット チェック コマンドの数
- 99.99% チェック分割期間: 分割チェック コマンドの実行にかかる時間 (P99.99)
ローカルリーダー
- ローカル リーダー リクエスト: リクエストの総数とローカル読み取りスレッドからの拒否の数
統合読み取りプール
- レベル別の使用時間: 統合読み取りプール内の各レベルで消費された時間。レベル 0 は小規模なクエリを意味します。
- レベル 0 の可能性: 統合読み取りプール内のレベル 0 タスクの割合
- 実行中のタスク: 統合読み取りプール内で同時に実行されているタスクの数
ストレージ
- ストレージコマンド総数:1秒当たりの種類別受信コマンド数
- ストレージ非同期リクエスト エラー: 1 秒あたりのエンジン非同期リクエスト エラーの数
- ストレージ非同期スナップショット期間: 非同期スナップショット要求の処理にかかる時間。
.99
の1s
未満である必要があります。 - ストレージの非同期書き込み時間: 非同期書き込みリクエストの処理にかかる時間。
.99
の1s
未満である必要があります。
フロー制御
- スケジューラー フロー: 各 TiKV インスタンス上のリアルタイムのスケジューラー トラフィック。
- スケジューラー破棄率: 各 TiKV インスタンスでのスケジューラー要求の拒否率。この比率が 0 より大きい場合、フロー制御が存在することを示します。
Compaction pending bytes
がそのしきい値を超えると、TiKV は超えた部分に基づいてScheduler discard ratio
を直線的に増加させます。クライアントは拒否されたリクエストを自動的に再試行します。 - スロットル期間: L0 ファイルが多すぎるためにフロー制御がトリガーされた場合に、スケジューラ リクエストの実行がブロックされる期間。このメトリックに値がある場合は、フロー制御が存在することを示します。
- スケジューラのスロットル CF: フロー制御のしきい値に達したときに RocksDB のスロットルをトリガーする CF。
- フロー コントローラー アクション: フロー制御のしきい値に達したときに RocksDB のスロットルをトリガーするアクション。
- フラッシュ/L0 フロー: 各 TiKV インスタンス上の RocksDB の異なる CF のフラッシュおよび L0 コンパクションのトラフィック。
- フロー制御要因: RocksDB スロットルのトリガーに関連する要因。
- 圧縮保留バイト: 各 TiKV インスタンス上でリアルタイムで圧縮を待機している RocksDB データのサイズ。
- Txn コマンドのスロットル期間: スロットルによるトランザクションに関連するコマンドのブロック期間。通常の状況では、このメトリックは 0 です。
- 非 txn コマンドのスロットル期間: スロットリングにより他のコマンドがブロックされた期間。通常の状況では、このメトリックは 0 です。
スケジューラー
- スケジューラ ステージの合計: 1 秒あたりの各ステージのコマンド数。短時間に多くのエラーが発生してはなりません。
- スケジューラ書き込みバイト: 各 TiKV インスタンスで処理されたコマンドによって書き込まれた合計バイト数
- スケジューラ優先コマンド: 1 秒あたりのさまざまな優先コマンドの数
- スケジューラの保留中のコマンド: TiKV インスタンスごとの 1 秒あたりの保留中のコマンドの数
スケジューラ - コミット
- スケジューラ ステージの合計: commit コマンドを実行するときの、1 秒あたりの各ステージのコマンド数。短時間に多くのエラーが発生してはなりません。
- スケジューラコマンドの実行時間: commit コマンドの実行時に消費された時間。
1s
未満である必要があります。 - スケジューララッチ待機時間:コミットコマンド実行時のラッチによる待機時間。
1s
未満である必要があります。 - 読み取られたスケジューラキー: commit コマンドによって読み取られたキーの数
- 書き込まれたスケジューラ キー: commit コマンドによって書き込まれたキーの数
- スケジューラ スキャンの詳細: キーは、commit コマンドの実行時に各 CF の詳細をスキャンします。
- スケジューラスキャン詳細 [ロック]: キーは、コミットコマンド実行時にロック CF の詳細をスキャンします。
- スケジューラスキャン詳細 [書き込み]: commit コマンド実行時にライト CF の詳細をスキャンします。
- スケジューラ スキャンの詳細 [デフォルト]: commit コマンドの実行時に、キーはデフォルトの CF の詳細をスキャンします。
スケジューラ - pessimistic_rollback
- スケジューラ ステージの合計:
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 の詳細をスキャンします。
スケジューラ - 事前書き込み
- スケジューラ ステージの合計: prewrite コマンドを実行するときの、1 秒あたりの各ステージのコマンド数。短時間に多くのエラーが発生してはなりません。
- スケジューラ コマンドの継続時間: prewrite コマンドの実行時に消費された時間。
1s
未満である必要があります。 - スケジューラ ラッチ待機時間: prewrite コマンド実行時のラッチによる待機時間。
1s
未満である必要があります。 - 読み取られたスケジューラ キー: prewrite コマンドによって読み取られたキーの数
- 書き込まれたスケジューラ キー: prewrite コマンドによって書き込まれたキーの数
- スケジューラ スキャンの詳細: キーは、prewrite コマンドの実行時に各 CF の詳細をスキャンします。
- スケジューラスキャン詳細 [ロック]: キーは、prewrite コマンドの実行時にロック CF の詳細をスキャンします。
- スケジューラ スキャン詳細 [書き込み]: キーは、prewrite コマンドの実行時に書き込み CF の詳細をスキャンします。
- スケジューラ スキャンの詳細 [デフォルト]: キーは、prewrite コマンドの実行時にデフォルト CF の詳細をスキャンします。
スケジューラ - ロールバック
- スケジューラ ステージの合計: ロールバック コマンドを実行するときの、各ステージの 1 秒あたりのコマンド数。短時間に多くのエラーが発生してはなりません。
- スケジューラ コマンドの継続時間: ロールバック コマンドの実行時に消費された時間。
1s
未満である必要があります。 - スケジューラ ラッチ待機時間: ロールバック コマンド実行時のラッチによる待機時間。
1s
未満である必要があります。 - 読み取られたスケジューラキー: ロールバックコマンドによって読み取られたキーの数
- 書き込まれたスケジューラ キー: ロールバック コマンドによって書き込まれたキーの数
- スケジューラ スキャンの詳細: キーは、ロールバック コマンドの実行時に各 CF の詳細をスキャンします。
- スケジューラ スキャン詳細 [ロック]: キーは、ロールバック コマンドの実行時にロック CF の詳細をスキャンします。
- スケジューラ スキャン詳細 [書き込み]: キーは、ロールバック コマンドの実行時に書き込み CF の詳細をスキャンします。
- スケジューラ スキャンの詳細 [デフォルト]: キーは、ロールバック コマンドの実行時にデフォルトの CF の詳細をスキャンします。
GC
- GC タスク: gc_worker によって処理された GC タスクの数
- GC タスクの継続時間: GC タスクの実行にかかる時間
- TiDB GC 秒: GC の継続時間
- TiDB GC ワーカー アクション: TiDB GC ワーカー アクションの数
- ResolveLocks Progress: GC (ロックの解決) の最初のフェーズの進行状況
- TiKV Auto GC Progress: GC の第 2 フェーズの進捗状況
- GC 速度: 1 秒あたりの GC によって削除されるキーの数
- TiKV Auto GC SafePoint: 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 が処理したタスク: 1 秒あたりに FuturePool によって処理されたタスクの数
- FuturePool の保留中のタスク: 1 秒あたりの将来のプールの保留中および実行中のタスクの現在の数
コプロセッサーの概要
- リクエスト期間: コプロセッサリクエストを受信してからリクエストの処理が完了するまでの合計期間
- 合計リクエスト数: 1 秒あたりのタイプ別のリクエスト数
- ハンドル期間: 1 分あたりのコプロセッサー要求の実際の処理にかかった時間のヒストグラム
- Total Request Errors: 1 秒あたりのコプロセッサーのリクエスト エラーの数。短時間に多くのエラーが発生してはなりません。
- KV カーソル操作の合計:
select
、index
、analyze_table
、analyze_index
、checksum_table
、checksum_index
など、1 秒あたりのタイプ別の KV カーソル操作の合計数。 - KV カーソル操作: タイプごとの 1 秒あたりの KV カーソル操作のヒストグラム
- Total RocksDB Perf 統計: RocksDB のパフォーマンスの統計
- 合計応答サイズ: コプロセッサー応答の合計サイズ
コプロセッサーの詳細
- ハンドル期間: 1 分あたりのコプロセッサー要求の実際の処理にかかった時間のヒストグラム
- 95% ストア別の処理時間: TiKV インスタンスごとのコプロセッサー要求の処理に費やされる 1 秒あたりの時間 (P95)
- 待機時間: コプロセッサ要求の処理を待機しているときに消費される時間。
10s
未満である必要があります (P99.99)。 - 95% ストア別の待機時間: TiKV インスタンスごとの 1 秒あたりのコプロセッサー要求の処理を待機しているときに消費される時間 (P95)
- DAG リクエストの合計: 1 秒あたりの DAG リクエストの合計数
- DAG エグゼキュータの合計: 1 秒あたりの DAG エグゼキュータの合計数
- Total Ops 詳細 (テーブル スキャン): コプロセッサで選択スキャンを実行するときの 1 秒あたりの RocksDB 内部操作の数
- Total Ops 詳細 (インデックス スキャン): コプロセッサでインデックス スキャンを実行する場合の 1 秒あたりの RocksDB 内部オペレーションの数
- CF 別の合計操作詳細 (テーブル スキャン): コプロセッサーで選択スキャンを実行する場合の、各 CF の 1 秒あたりの RocksDB 内部操作の数
- CF 別の合計操作詳細 (インデックス スキャン): コプロセッサーでインデックス スキャンを実行した場合の、各 CF の 1 秒あたりの RocksDB 内部操作の数
スレッド
- スレッドの状態: TiKV スレッドの状態
- スレッド IO: 各 TiKV スレッドの I/O トラフィック
- スレッドの自発的コンテキスト スイッチ: TiKV スレッドの自発的コンテキスト スイッチの数
- スレッドの非自発的コンテキスト スイッチ: TiKV スレッドの非自発的コンテキスト スイッチの数
RocksDB - kv/ラフト
- 取得操作: 1 秒あたりの取得操作の数
- 取得時間: 取得操作の実行にかかる時間
- シーク操作: 1 秒あたりのシーク操作の数
- シーク時間: シーク操作の実行にかかる時間
- 書き込み操作: 1 秒あたりの書き込み操作の数
- 書き込み時間: 書き込み操作の実行にかかる時間
- WAL 同期操作: 1 秒あたりの WAL 同期操作の数
- WAL の書き込み時間: WAL の書き込みにかかる時間
- WAL 同期時間: WAL 同期操作の実行にかかる時間
- 圧縮操作: 1 秒あたりの圧縮操作とフラッシュ操作の数
- 圧縮時間: 圧縮およびフラッシュ操作の実行にかかる時間
- SST 読み取り時間: SST ファイルの読み取りにかかる時間
- 書き込みストール期間: 書き込みストール期間。通常は
0
になるはずです。 - Memtable サイズ: 各カラムファミリーの memtable サイズ
- Memtable hit: memtable のヒット率
- ブロック キャッシュ サイズ:ブロックキャッシュサイズ。共有ブロックキャッシュが無効になっている場合は、カラムファミリーごとに分類されます。
- ブロックキャッシュヒット:ブロックキャッシュのヒット率
- ブロック キャッシュ フロー: タイプごとのブロックキャッシュ操作のフロー レート
- ブロック キャッシュ操作: タイプごとのブロックキャッシュ操作の数
- キー フロー: タイプごとのキーに対する操作のフロー レート
- キーの合計: 各カラムファミリーのキーの数
- 読み取りフロー: タイプごとの読み取り操作のフロー率
- Bytes / Read: 読み取り操作ごとのバイト数
- 書き込みフロー: タイプごとの書き込み操作のフロー率
- Bytes / Write: 書き込み操作ごとのバイト数
- 締固め流量: タイプごとの締固め操作の流量
- 圧縮保留中のバイト: 圧縮される保留中のバイト
- 読み取り増幅: 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による書き込み操作の期間。この期間は、これらのデータの書き込みに伴うディスク IO のレイテンシーの合計に近いです。
- 流れ
- write: Raft Engineの書き込みトラフィック
- rewrite append: 追加ログの書き換えのトラフィック
- rewrite rewrite: リライトログのリライトのトラフィック
- 書き込み時間の内訳 (99%)
- wal: Raft Engine WAL の書き込みのレイテンシー
- wait: 書き込み前の待ち時間
- apply: データをメモリに適用するのにかかる時間
- Bytes/Written: Raft Engineによって毎回書き込まれるバイト数
- WAL 所要時間の内訳 (P99%): Raft Engine WAL の作成の各段階で消費された時間
- ファイル数
- append: Raft Engineによるデータの追加に使用されるファイルの数
- rewrite: Raft Engineによるデータの書き換えに使用されるファイルの数 (書き換えは RocksDB の圧縮に似ています)
- エントリ数
- rewrite: Raft Engineによって書き換えられたエントリの数
- append: Raft Engineによって追加されたエントリの数
タイタン - すべて
- BLOB ファイル数: Titan BLOB ファイルの数
- BLOB ファイル サイズ: Titan BLOB ファイルの合計サイズ
- ライブ BLOB サイズ: 有効な BLOB レコードの合計サイズ
- Blob キャッシュ ヒット: Titanブロックキャッシュのヒット率
- イターがタッチした BLOB ファイル数: 単一のイテレーターに関与する BLOB ファイルの数
- BLOB ファイル破棄可能比率分布: BLOB ファイルの BLOB レコード失敗の比率分布
- BLOB キー サイズ: Titan BLOB キーのサイズ
- BLOB 値のサイズ: Titan BLOB 値のサイズ
- BLOB の取得操作: Titan BLOB の取得操作の数
- BLOB の取得期間: Titan BLOB で取得操作を実行するときに消費される時間
- BLOB の iter 操作: Titan blob で iter 操作を実行するときに消費される時間
- BLOB シーク時間: Titan BLOB でシーク操作を実行するときに消費される時間
- BLOB の次の継続時間: Titan BLOB で次の操作を実行するときに消費される時間
- Blob prev の継続時間: Titan blob で prev 操作を実行するときに消費される時間
- BLOB キー フロー: Titan BLOB キーに対する操作のフロー レート
- 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 ファイルの数
悲観的ロック
- ロック マネージャー スレッド CPU: ロック マネージャー スレッドの CPU 使用率
- ロック マネージャーが処理したタスク: ロック マネージャーが処理したタスクの数
- ウェイターの存続期間: ロックが解放されるまでのトランザクションの待機時間
- 待機テーブル: ロックの数やロックを待機しているトランザクションの数など、待機テーブルのステータス情報
- デッドロック検出時間: デッドロックの検出にかかる時間
- エラーの検出: デッドロックの数を含む、デッドロックの検出時に発生したエラーの数
- デッドロック検出リーダー: デッドロック検出リーダーが配置されているノードの情報
- 悲観的ロックの合計メモリサイズ: メモリ内の悲観的ロックが占有するメモリサイズ
- メモリ内の悲観的ロックの結果:悲観的ロックのみをメモリに保存した結果。
full
メモリ制限を超えたために悲観的ロックがメモリに保存されなかった回数を意味します。
解決済み-TS
- Resolved-TS ワーカー CPU: resolved-tsワーカー スレッドの CPU 使用率
- Advance-TS ワーカー CPU: Advanced-TS ワーカー スレッドの CPU 使用率
- スキャン ロック ワーカー CPU: スキャン ロック ワーカー スレッドの CPU 使用率
- resolved-tsの最大ギャップ : この TiKV 内のすべてのアクティブなリージョンのresolved-tsと現在時刻の間の最大時間差
- 安全な時間の最大ギャップ: この TiKV 内のすべてのアクティブなリージョンの安全な時間と現在の時間の間の最大時間差
- 最小解決 TSリージョン:resolved-tsが最小であるリージョンの ID
- Min Safe TSリージョン: 安全な TS が最小であるリージョンの ID
- Leaderのチェック期間: リーダーのリクエストの処理に費やされた時間の分布。リーダーでリクエストを送信してからレスポンスを受信するまでの期間
- リージョンリーダーのresolved-tsの最大ギャップ: この TiKV 内のすべてのアクティブなリージョンのresolved-tsと現在時刻の間の最大時間差 (リージョンリーダーのみ)
- 最小Leader解決済み TSリージョン:リージョンリーダーのみの、resolved-ts が最小であるリージョンの ID
- ロック ヒープ サイズ: resolved-tsモジュール内のロックを追跡するヒープのサイズ
メモリ
- アロケータ統計:メモリアロケータの統計
バックアップ
- バックアップ CPU: バックアップ スレッドの CPU 使用率
- Range Size: バックアップ範囲サイズのヒストグラム
- バックアップ期間: バックアップに要した時間
- バックアップ フロー: バックアップの合計バイト数
- ディスク スループット: インスタンスごとのディスク スループット
- バックアップ範囲の期間: 範囲のバックアップにかかる時間
- バックアップ エラー: バックアップ中に発生したエラーの数
暗号化
- 暗号化データキー: 暗号化されたデータキーの総数
- 暗号化されたファイル: 暗号化されたファイルの数
- 暗号化が初期化されました: 暗号化が有効かどうかを示します。
1
有効を意味します。 - 暗号化メタファイルのサイズ: 暗号化メタファイルのサイズ
- データの暗号化/復号化ナノ: 毎回のデータの暗号化/復号化にかかる時間のヒストグラム
- 読み取り/書き込み暗号化メタ期間: 暗号化メタ ファイルの読み取り/書き込みにかかる時間
共通パラメータの説明
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 軸上の一連のグラフは上下逆に描かれています。左側のグラフの形状が右側のグラフの形状と一致する場合、示唆された原因は真です。
詳細なメトリクスと説明については、ダッシュボードユーザーマニュアルを参照してください。