パフォーマンスの概要に関する主要指標

TiUP を使用して TiDB クラスターをデプロイすると、監視システム (Prometheus & Grafana) が同時にデプロイされます。詳細については、 TiDB 監視フレームワークの概要を参照してください。

Grafana ダッシュボードは、PD、TiDB、TiKV、Node_exporter、Overview、Performance Overview などを含む一連のサブ ダッシュボードに分かれています。診断に役立つ多くの指標があります。

Performance Overview ダッシュボードは、TiDB、PD、および TiKV のメトリックを調整し、それぞれを次のセクションに示します。

  • 概要: データベース時間と SQL 実行時間の概要。概要のさまざまな色を確認することで、データベースのワークロード プロファイルとパフォーマンスのボトルネックをすばやく特定できます。

  • 負荷プロファイル: データベースの QPS、接続情報、アプリケーションが TiDB とやり取りする MySQL コマンドの種類、データベースの内部 TSO と KV 要求の OPS、TiKV と TiDB のリソースの使用状況など、主要なメトリックとリソースの使用状況。

  • トップダウンレイテンシーの内訳: クエリレイテンシーと接続アイドル時間の比率、クエリレイテンシーの内訳、実行中の TSO/KV 要求レイテンシー、TiKV 内の書き込みレイテンシーの内訳。

パフォーマンス概要ダッシュボードを使用すると、パフォーマンスを効率的に分析し、ユーザー応答時間のボトルネックがデータベースにあるかどうかを確認できます。ボトルネックがデータベースにある場合は、データベース時間の概要、ワークロード プロファイル、SQLレイテンシーの内訳を使用して、データベース内のボトルネックを特定できます。詳細については、 パフォーマンス分析とチューニングを参照してください。

次のセクションでは、パフォーマンス概要ダッシュボードのメトリックを示します。

SQL タイプ別のデータベース時間

  • データベース時間: 1 秒あたりの合計データベース時間
  • sql_type: 1 秒あたりの各タイプの SQL ステートメントによって消費されたデータベース時間

SQL フェーズごとのデータベース時間

  • データベース時間: 1 秒あたりの合計データベース時間
  • get token/parse/compile/execute: 4 つの SQL 処理フェーズで消費されるデータベース時間

一般的に、SQL 実行フェーズは緑で、その他のフェーズは赤で表示されます。緑以外の領域が大きい場合は、実行フェーズ以外のフェーズで多くのデータベース時間が費やされていることを意味し、さらなる原因分析が必要です。

SQL 実行時間の概要

  • 実行時間: 1 秒あたりの SQL 実行中に消費されたデータベース時間
  • tso_wait: SQL 実行中の 1 秒あたりの同時 TSO 待機時間
  • kv リクエスト タイプ: SQL 実行中の 1 秒あたりの各 KV リクエスト タイプの待機時間。 KV 要求は並行して実行されるため、KV 要求の合計待機時間は SQL 実行時間を超える可能性があります。

緑色のメトリックは一般的な KV 書き込み要求 (事前書き込みやコミットなど) を表し、青色のメトリックは一般的な読み取り要求を表し、他の色のメトリックは注意を払う必要がある予期しない状況を表します。たとえば、悲観的ロック KV 要求は赤でマークされ、TSO 待機は濃い茶色でマークされます。

青以外または緑以外の領域が大きい場合は、SQL 実行中にボトルネックがあることを意味します。例えば:

  • 重大なロック競合が発生した場合、赤い領域が大きな割合を占めます。
  • TSO の待機に過度の時間が費やされると、こげ茶色の領域が大きな割合を占めます。

QPS

タイプ別に収集された、すべての TiDB インスタンスで 1 秒あたりに実行された SQL ステートメントの数: SELECTINSERT 、およびUPDATEなど

タイプ別CPS

タイプに基づいて、すべての TiDB インスタンスによって 1 秒あたりに処理されるコマンドの数

Plan Cache OPS を使用したクエリ

すべての TiDB インスタンスでの 1 秒あたりのプラン キャッシュを使用したクエリの数

KV/TSO リクエスト OPS

  • kv request total: すべての TiDB インスタンスでの 1 秒あたりの KV リクエストの総数
  • タイプ別の kv リクエスト: GetPrewrite 、およびCommitなどのタイプに基づく、すべての TiDB インスタンスにおける 1 秒あたりの KV リクエストの数。
  • tso - cmd: すべての TiDB インスタンスでの 1 秒あたりのtso cmdリクエストの数
  • tso - request: すべての TiDB インスタンスにおける 1 秒あたりのtso requestリクエストの数

一般に、 tso - cmdtso - requestで割ると、1 秒あたりのリクエストの平均バッチ サイズが得られます。

接続数

  • total: すべての TiDB インスタンスへの接続数
  • アクティブな接続: すべての TiDB インスタンスへのアクティブな接続の数
  • 各 TiDB インスタンスへの接続数

TiDB CPU

  • avg: すべての TiDB インスタンスの平均 CPU 使用率
  • デルタ: すべての TiDB インスタンスの最大 CPU 使用率からすべての TiDB インスタンスの最小 CPU 使用率を引いたもの
  • max: すべての TiDB インスタンスでの最大 CPU 使用率

TiKV CPU/IO MBps

  • CPU-Avg: すべての TiKV インスタンスの平均 CPU 使用率
  • CPU デルタ: すべての TiKV インスタンスの最大 CPU 使用率から、すべての TiKV インスタンスの最小 CPU 使用率を引いたもの
  • CPU-MAX: すべての TiKV インスタンス間の最大 CPU 使用率
  • IO-Avg: すべての TiKV インスタンスの平均 MBps
  • IO-Delt: すべての TiKV インスタンスの最大 MBps から、すべての TiKV インスタンスの最小 MBps を引いたもの
  • IO-MAX: すべての TiKV インスタンスの最大 MBps

間隔

  • 期間: 実行時間

    • クライアントから TiDB へのリクエストを受信してから、TiDB がリクエストを実行してクライアントに結果を返すまでの時間。通常、クライアント要求は SQL ステートメントの形式で送信されます。ただし、この期間には、 COM_PINGCOM_SLEEPCOM_STMT_FETCH 、およびCOM_SEND_LONG_DATAなどのコマンドの実行時間が含まれる場合があります。
    • TiDB はマルチクエリをサポートしています。つまり、クライアントはselect 1; select 1; select 1;などの複数の SQL ステートメントを一度に送信できます。この場合、このクエリの合計実行時間には、すべての SQL ステートメントの実行時間が含まれます。
  • avg: すべてのリクエストを実行する平均時間

  • 99: すべてのリクエストを実行するための P99 期間

  • avg by type: すべての TiDB インスタンスですべてのリクエストを実行する平均時間。タイプ別に収集: SELECTINSERT 、およびUPDATE

接続アイドル時間

Connection Idle Duration は、接続がアイドル状態である期間を示します。

  • avg-in-txn: 接続がトランザクション内にある場合の平均接続アイドル時間
  • avg-not-in-txn: 接続がトランザクション内にない場合の平均接続アイドル時間
  • 99-in-txn: 接続がトランザクション内にある場合の P99 接続のアイドル時間
  • 99-not-in-txn: 接続がトランザクション内にない場合の P99 接続のアイドル時間

解析期間、コンパイル期間、および実行期間

  • 解析時間: SQL ステートメントの解析に費やされた時間
  • コンパイル時間: 解析された SQL AST を実行計画にコンパイルするのにかかった時間
  • 実行時間: SQL ステートメントの実行計画の実行に費やされた時間

これら 3 つのメトリクスにはすべて、すべての TiDB インスタンスの平均期間と 99 パーセンタイル期間が含まれます。

平均 TiDB KV リクエスト期間

GetPrewrite 、およびCommitを含むタイプに基づく、すべての TiDB インスタンスでの KV リクエストの実行に費やされた平均時間。

平均 TiKV GRPC 期間

kv_getkv_prewrite 、およびkv_commitを含むタイプに基づく、すべての TiKV インスタンスでの gRPC リクエストの実行に費やされた平均時間。

PD TSO 待機/RPC 期間

  • wait - avg: すべての TiDB インスタンスで PD が TSO を返すのを待機する平均時間
  • rpc - avg: TSO 要求を PD に送信してから、すべての TiDB インスタンスで TSO を受信するまでの平均時間
  • wait - 99: すべての TiDB インスタンスで PD が TSO を返すのを待機する P99 時間
  • rpc - 99: TSO 要求を PD に送信してから、すべての TiDB インスタンスで TSO を受信するまでの P99 時間

ストレージの非同期書き込み期間、保存期間、および適用期間

  • Storage Async Write Duration: 非同期書き込みにかかった時間
  • Store Duration: 非同期書き込み中のストア ループで消費される時間
  • 適用期間: 非同期書き込み中の適用ループで消費される時間

これら 3 つのメトリクスにはすべて、すべての TiKV インスタンスの平均期間と P99 期間が含まれます。

平均ストレージ非同期書き込み時間 = 平均ストア時間 + 平均適用時間

ログ期間の追加、ログ期間のコミット、およびログ期間の適用

  • Append Log Duration: Raftがログを追加するために費やした時間
  • Commit Log Duration: Raftがログをコミットするために費やした時間
  • Apply Log Duration: Raftがログを適用するために費やした時間

これら 3 つのメトリクスにはすべて、すべての TiKV インスタンスの平均期間と P99 期間が含まれます。

パフォーマンス概要ダッシュボードのインターフェース

performance overview

エコシステム
TiDB
TiKV
TiSpark
Chaos Mesh
© 2022 PingCAP. All Rights Reserved.