TiDBダッシュボード監視ページ
監視ページでは、TiDB v6.1.0 で導入されたパフォーマンス分析およびチューニング ツールであるパフォーマンス概要ダッシュボードを表示できます。パフォーマンス概要ダッシュボードを使用すると、パフォーマンスを効率的に分析し、ユーザー応答時間のボトルネックがデータベースにあるかどうかを確認できます。ボトルネックがデータベースにある場合は、データベース時間の概要、ワークロード プロファイル、SQLレイテンシーの内訳を使用して、データベース内のボトルネックを特定できます。詳細については、 パフォーマンス分析とチューニング参照してください。
ページにアクセスする
TiDB ダッシュボードにログインし、左側のナビゲーション バーから[監視]をクリックします。パフォーマンス概要ダッシュボードが表示されます。
TiDB クラスターがTiUP を使用してデプロイされている場合は、Grafana でパフォーマンス概要ダッシュボードを表示することもできます。このデプロイ モードでは、監視システム (Prometheus と Grafana) が同時にデプロイされます。詳細については、 TiDB 監視フレームワークの概要参照してください。
パフォーマンス概要の主要指標
パフォーマンス概要ダッシュボードは、TiDB、PD、および TiKV のメトリックを調整し、それぞれを次のセクションで表示します。
概要: データベース時間と SQL 実行時間の概要。概要でさまざまな色を確認することで、データベースのワークロード プロファイルとパフォーマンスのボトルネックをすばやく特定できます。
負荷プロファイル: データベース QPS、接続情報、アプリケーションが TiDB と対話する MySQL コマンド タイプ、データベース内部 TSO および KV 要求 OPS、TiKV および TiDB のリソース使用量など、主要なメトリックとリソース使用量。
トップダウンのレイテンシーの内訳: クエリレイテンシーと接続アイドル時間の比率、クエリレイテンシーの内訳、実行中の TSO/KV 要求レイテンシー、TiKV 内の書き込みレイテンシーの内訳。
次のセクションでは、パフォーマンス概要ダッシュボードのメトリックについて説明します。
SQL タイプ別のデータベース時間
database time
: 1秒あたりの合計データベース時間sql_type
: 各タイプのSQL文が1秒あたりに消費するデータベース時間
SQL フェーズ別のデータベース時間
database time
: 1秒あたりの合計データベース時間get token/parse/compile/execute
: 4つのSQL処理フェーズで消費されたデータベース時間
全体的に、SQL 実行フェーズは緑色で、他のフェーズは赤色で表示されます。緑色以外の領域が大きい場合は、実行フェーズ以外のフェーズで多くのデータベース時間が消費されていることを意味し、さらに原因分析が必要です。
SQL 実行時間の概要
execute time
: SQL 実行中に 1 秒あたりに消費されるデータベース時間tso_wait
: SQL実行中の1秒あたりの同時TSO待機時間kv request type
: SQL 実行中に各 KV 要求タイプを 1 秒あたりに待機する時間。KV 要求は同時実行されるため、合計 KV 要求待機時間は SQL 実行時間を超える場合があります。
緑のメトリックは一般的な KV 書き込み要求 (事前書き込みやコミットなど) を表し、青のメトリックは一般的な読み取り要求を表し、他の色のメトリックは注意を払う必要がある予期しない状況を表します。たとえば、悲観的ロック KV 要求は赤でマークされ、TSO 待機は濃い茶色でマークされます。
青以外の領域や緑以外の領域が大きい場合は、SQL 実行中にボトルネックが発生していることを意味します。例:
- 重大なロック競合が発生した場合、赤い領域が大きな割合を占めることになります。
- TSO の待機に過剰な時間が費やされると、濃い茶色の領域が大きな割合を占めることになります。
品質保証
すべての TiDB インスタンスでUPDATE
秒あたりに実行された SQL ステートメントの数 (タイプ別に収集INSERT
SELECT
タイプ別CPS
タイプに基づいて、すべての TiDB インスタンスによって 1 秒あたりに処理されるコマンドの数
プランキャッシュ OPS を使用したクエリ
すべての TiDB インスタンスでプラン キャッシュを使用する 1 秒あたりのクエリ数
KV/TSO リクエスト OPS
- kv リクエスト合計: すべての TiDB インスタンスにおける 1 秒あたりの KV リクエストの合計数
- タイプ別の KV リクエスト数:
Get
などのタイプに基づく、すべての TiDB インスタンスでのPrewrite
秒あたりの KV リクエストCommit
- tso - cmd: TiDB がすべての TiDB インスタンスの PD に送信する 1 秒あたりの gRPC リクエストの数。各 gRPC リクエストには、TSO リクエストのバッチが含まれます。
- tso - リクエスト: すべての TiDB インスタンスにおける 1 秒あたりの TSO リクエスト数
一般的に、 tso - request
tso - cmd
で割った値が、1 秒あたりの TSO 要求バッチの平均サイズになります。
接続数
total
: すべての TiDB インスタンスへの接続数active connections
: すべての TiDB インスタンスへのアクティブな接続の数- 各 TiDB インスタンスへの接続数
TiDB CPU/メモリ
CPU-Avg
: すべての TiDB インスタンスの平均 CPU 使用率CPU-Delta
: すべての TiDB インスタンスの最大 CPU 使用率からすべての TiDB インスタンスの最小 CPU 使用率を引いた値CPU-Max
: すべての TiDB インスタンスの最大 CPU 使用率CPU-Quota
: TiDBが使用できるCPUコアの数Mem-Max
: すべての TiDB インスタンスの最大メモリ使用率
TiKV CPU/メモリ
CPU-Avg
: すべての TiKV インスタンスの平均 CPU 使用率CPU-Delta
: すべての TiKV インスタンスの最大 CPU 使用率からすべての TiKV インスタンスの最小 CPU 使用率を引いた値CPU-Max
: すべての TiKV インスタンスの最大 CPU 使用率CPU-Quota
: TiKVが使用できるCPUコアの数Mem-Max
: すべての TiKV インスタンスの最大メモリ使用率
PD CPU/メモリ
CPU-Max
: すべてのPDインスタンスの最大CPU使用率CPU-Quota
: PDが使用できるCPUコアの数Mem-Max
: すべてのPDインスタンスの最大メモリ使用率
トラフィックを読む
TiDB -> Client
: TiDBからクライアントへの送信トラフィック統計Rocksdb -> TiKV
:storageレイヤー内の読み取り操作中にTiKVがRocksDBから取得するデータフロー
書き込みトラフィック
Client -> TiDB
: クライアントからTiDBへの受信トラフィック統計TiDB -> TiKV: general
: フォアグラウンドトランザクションが TiDB から TiKV に書き込まれる速度TiDB -> TiKV: internal
: 内部トランザクションが TiDB から TiKV に書き込まれる速度TiKV -> Rocksdb
: TiKVからRocksDBへの書き込み操作の流れRocksDB Compaction
: RocksDBの圧縮操作によって生成された合計読み取りおよび書き込みI/Oフロー
間隔
Duration
: 実行時間- クライアントから TiDB へのリクエストを受信してから、TiDB がリクエストを実行し、結果をクライアントに返すまでの期間。通常、クライアント リクエストは SQL ステートメントの形式で送信されますが、この期間には
COM_PING
、COM_SLEEP
、COM_STMT_FETCH
、COM_SEND_LONG_DATA
などのコマンドの実行時間が含まれる場合があります。 - TiDB はマルチクエリをサポートしています。つまり、クライアントは一度に複数の SQL ステートメント (例:
select 1; select 1; select 1;
を送信できます。この場合、このクエリの合計実行時間には、すべての SQL ステートメントの実行時間が含まれます。
- クライアントから TiDB へのリクエストを受信してから、TiDB がリクエストを実行し、結果をクライアントに返すまでの期間。通常、クライアント リクエストは SQL ステートメントの形式で送信されますが、この期間には
avg
: すべてのリクエストを実行する平均時間99
: すべてのリクエストを実行するためのP99期間avg by type
: すべての TiDB インスタンスですべてのリクエストを実行する平均時間UPDATE
タイプ別に収集INSERT
:SELECT
接続アイドル時間
接続アイドル期間は、接続がアイドル状態になっている期間を示します。
avg-in-txn
: 接続がトランザクション内にあるときの平均接続アイドル時間avg-not-in-txn
: 接続がトランザクション内にない場合の平均接続アイドル時間99-in-txn
: 接続がトランザクション内にある場合の P99 接続アイドル期間99-not-in-txn
: 接続がトランザクション内にない場合の P99 接続アイドル期間
解析期間、コンパイル期間、実行期間
Parse Duration
: SQL文の解析に要した時間Compile Duration
: 解析されたSQL ASTを実行プランにコンパイルするのにかかる時間Execution Duration
: SQL文の実行計画の実行に費やされた時間
これら 3 つのメトリックにはすべて、すべての TiDB インスタンスの平均期間と 99 パーセンタイル期間が含まれます。
平均 TiDB KV リクエスト期間
Get
、 Prewrite
、 Commit
などのタイプに基づいて、すべての TiDB インスタンスで KV 要求を実行するのに費やされた平均時間。
平均 TiKV GRPC 期間
kv_get
、 kv_prewrite
、 kv_commit
を含むタイプに基づいて、すべての TiKV インスタンスで gRPC リクエストを実行するのに費やされた平均時間。
PD TSO 待機/RPC 期間
wait - avg
: すべての TiDB インスタンスで PD が TSO を返すのを待つ平均時間rpc - avg
: PD に TSO 要求を送信してからすべての TiDB インスタンスで TSO を受信するまでの平均時間wait - 99
: すべての TiDB インスタンスで PD が TSO を返すのを待つ P99 時間rpc - 99
: PDにTSOリクエストを送信してからすべてのTiDBインスタンスでTSOを受信するまでのP99時間
ストレージ非同期書き込み期間、保存期間、適用期間
Storage Async Write Duration
: 非同期書き込みに要した時間Store Duration
: 非同期書き込み中のストアループで消費された時間Apply Duration
: 非同期書き込み中の適用ループで消費された時間
これら 3 つのメトリックには、すべての TiKV インスタンスの平均期間と P99 期間が含まれます。
平均storage非同期書き込み時間 = 平均保存時間 + 平均適用時間
追加ログ期間、コミットログ期間、適用ログ期間
Append Log Duration
: Raftがログを追加するために要した時間Commit Log Duration
: Raftがログをコミットするのにかかる時間Apply Log Duration
: Raftがログを適用するのに要した時間
これら 3 つのメトリックには、すべての TiKV インスタンスの平均期間と P99 期間が含まれます。