CALIBRATE RESOURCE
CALIBRATE RESOURCEステートメントは、現在のクラスターの「リクエストユニット(RU)」を推定して出力するために使用されます。
注記:
この機能は TiDB セルフホスト型にのみ適用され、 TiDB Cloudでは使用できません。
あらすじ
- CalibrateResourceStmt
- WorkloadOption
CalibrateResourceStmt ::= 'CALIBRATE' 'RESOURCE' WorkloadOption
WorkloadOption ::=
( 'WORKLOAD' ('TPCC' | 'OLTP_READ_WRITE' | 'OLTP_READ_ONLY' | 'OLTP_WRITE_ONLY') )
| ( 'START_TIME' 'TIMESTAMP' ('DURATION' stringLit | 'END_TIME' 'TIMESTAMP')?)?
権限
このコマンドを実行するには、次の要件が満たされていることを確認してください。
tidb_enable_resource_control有効にしました。- ユーザーには
SUPERまたはRESOURCE_GROUP_ADMIN権限があります。 - ユーザーは
METRICS_SCHEMAスキーマ内のすべてのテーブルに対するSELECT権限を持っています。
容量の見積もり方法
TiDB は 2 つの推定方法を提供します。
実際のワークロードに基づいて容量を見積もる
アプリケーションがすでに本番環境で実行されている場合、または実際のビジネス テストを実行できる場合は、一定期間にわたる実際のワークロードを使用して総容量を見積もることをお勧めします。推定の精度を向上させるには、次の制約に従ってください。
START_TIMEパラメーターを使用して、推定を開始する時点を2006-01-02 15:04:05の形式で指定します。デフォルトの推定終了時刻は現在時刻です。START_TIMEパラメーターを指定した後、END_TIMEパラメーターを使用して推定終了時刻を指定するか、DURATIONパラメーターを使用してSTART_TIMEからの推定時間ウィンドウを指定できます。- 時間枠の範囲は 10 分から 24 時間です。
- 指定した時間枠内で、TiDB および TiKV の CPU 使用率が低すぎる場合、容量を見積もることはできません。
注記:
TiKV は、macOS 上の CPU 使用率メトリクスを監視しません。 macOS 上の実際のワークロードに基づく容量の見積もりはサポートされていません。
ハードウェア導入に基づいて容量を見積もる
この方法では主に、現在のクラスター構成に基づいて容量を推定し、さまざまなワークロードで観察された経験値を組み合わせます。ワークロードの種類が異なれば必要なハードウェアの比率も異なるため、同じハードウェア構成でも出力容量が異なる場合があります。ここのWORKLOADパラメータは、次のさまざまなワークロード タイプを受け入れます。デフォルト値はTPCCです。
TPCC: 大量のデータ書き込みを伴うワークロードに適用されます。これは、TPC-Cと同様のワークロード モデルに基づいて推定されます。OLTP_WRITE_ONLY: 大量のデータ書き込みを伴うワークロードに適用されます。これは、sysbench oltp_write_onlyと同様のワークロード モデルに基づいて推定されます。OLTP_READ_WRITE: データの読み取りと書き込みが均等なワークロードに適用されます。これは、sysbench oltp_read_writeと同様のワークロード モデルに基づいて推定されます。OLTP_READ_ONLY: 大量のデータを読み取るワークロードに適用されます。これは、sysbench oltp_read_onlyと同様のワークロード モデルに基づいて推定されます。
注記:
クラスターの RU 容量は、クラスターのトポロジー、各コンポーネントのハードウェアおよびソフトウェア構成によって異なります。各クラスターが提供できる実際の RU は、実際のワークロードにも関係します。ハードウェア導入に基づく推定値は参考用であり、実際の最大値とは異なる場合があります。 実際のワークロードに基づいて容量を見積もるにオススメです。
例
開始時間START_TIMEと時間枠DURATIONを指定して、実際のワークロードに応じた RU 容量を表示します。
CALIBRATE RESOURCE START_TIME '2023-04-18 08:00:00' DURATION '20m';
+-------+
| QUOTA |
+-------+
| 27969 |
+-------+
1 row in set (0.01 sec)
開始時刻START_TIMEと終了時刻END_TIMEを指定して、実際のワークロードに応じた RU 容量を表示します。
CALIBRATE RESOURCE START_TIME '2023-04-18 08:00:00' END_TIME '2023-04-18 08:20:00';
+-------+
| QUOTA |
+-------+
| 27969 |
+-------+
1 row in set (0.01 sec)
時間枠範囲DURATION 10 分から 24 時間の範囲に収まらない場合、エラーが発生します。
CALIBRATE RESOURCE START_TIME '2023-04-18 08:00:00' DURATION '25h';
ERROR 1105 (HY000): the duration of calibration is too long, which could lead to inaccurate output. Please make the duration between 10m0s and 24h0m0s
CALIBRATE RESOURCE START_TIME '2023-04-18 08:00:00' DURATION '9m';
ERROR 1105 (HY000): the duration of calibration is too short, which could lead to inaccurate output. Please make the duration between 10m0s and 24h0m0s
時間枠内のワークロードが低すぎる場合、エラーが発生します。
CALIBRATE RESOURCE START_TIME '2023-04-18 08:00:00' DURATION '60m';
ERROR 1105 (HY000): The workload in selected time window is too low, with which TiDB is unable to reach a capacity estimation; please select another time window with higher workload, or calibrate resource by hardware instead
容量推定機能では、実際のワークロードに応じてメトリクス データ ( resource_manager_resource_unitなど) process_cpu_usage tikv_cpu_quotaする必要tidb_server_maxprocsあります。該当するモニタデータが空の場合、以下の例のように該当するモニタ項目名でエラーとなります。ワークロードがなく、 resource_manager_resource_unitが空の場合も、このエラーが発生します。
CALIBRATE RESOURCE START_TIME '2023-04-18 08:00:00' DURATION '60m';
Error 1105 (HY000): metrics 'resource_manager_resource_unit' is empty
TiKV は macOS 上の CPU 使用率を監視しません。 macOS で実際のワークロードに基づいて容量を見積もると、次のエラーが発生します。
CALIBRATE RESOURCE START_TIME '2023-04-18 08:00:00' DURATION '60m';
ERROR 1105 (HY000): metrics 'process_cpu_usage' is empty
RU 容量を表示するにはWORKLOADを指定します。デフォルト値はTPCCです。
CALIBRATE RESOURCE;
+-------+
| QUOTA |
+-------+
| 190470 |
+-------+
1 row in set (0.01 sec)
CALIBRATE RESOURCE WORKLOAD OLTP_WRITE_ONLY;
+-------+
| QUOTA |
+-------+
| 27444 |
+-------+
1 row in set (0.01 sec)