リソースグループ
このトピックでは、StarRocks のリソースグループ機能について説明します。
この機能を使用すると、短いクエリ、アドホッククエリ、ETL ジョブなど、複数のワークロードを単一のクラスターで同時に実行でき、複数のクラスターを展開するための追加コストを削減できます。技術的な観点から見ると、実行エンジンはユーザーの指定に従って同時実行ワークロードをスケジュールし、それらの間の干渉を隔離します。
リソースグループのロードマップ:
- v2.2 以降、StarRocks はクエリのリソース消費を制限し、同じクラスター内のテナント間でのリソースの隔離と効率的な使用を実現します。
- StarRocks v2.3 では、大規模クエリのリソース消費をさらに制限し、過大なクエリ要求によってクラスターリソースが枯渇するのを防ぎ、システムの安定 性を保証します。
- StarRocks v2.5 はデータロード(INSERT)の計算リソース消費を制限します。
- v3.3.5 以降、StarRocks は CPU リソースに対する厳しい制限を課すことをサポートします。
Internal Table | External Table | Big Query Restriction | INSERT INTO | Broker Load | Routine Load, Stream Load, Schema Change | CPU Hard Limit | |
---|---|---|---|---|---|---|---|
2.2 | √ | × | × | × | × | × | x |
2.3 | √ | √ | √ | × | × | × | x |
2.5 | √ | √ | √ | √ | × | × | x |
3.1 & 3.2 | √ | √ | √ | √ | √ | × | x |
3.3.5 and later | √ | √ | √ | √ | √ | × | √ |
用語
このセクションでは、リソースグループ機能を使用する前に理解しておくべき用語について説明します。
リソースグループ
各リソースグループは、特定の BE からの計算リソースのセットです。クラスターの各 BE を複数のリソースグループに分割できます。クエリがリソースグループに割り当てられると、StarRocks は指定されたリソースクォータに基づいてリソースグループに CPU とメモリリソース を割り当てます。
BE 上のリソースグループに対して CPU とメモリのリソースクォータを指定するには、次のパラメータを使用します:
パラメータ | 説明 | 値の範囲 | デフォルト |
---|---|---|---|
cpu_weight | BE ノード上のこのリソースグループの CPU スケジューリング重み。 | (0, avg_be_cpu_cores ] (0 より大きい場合に有効) | 0 |
exclusive_cpu_cores | このリソースグループの CPU ハード隔離パラメータ。 | (0, min_be_cpu_cores - 1 ] (0 より大きい場合に有効) | 0 |
mem_limit | 現在の BE ノード上でこのリソースグループがクエリに利用できるメモリの割合。 | (0, 1] (必須) | - |
spill_mem_limit_threshold | ディスクへのスピリングをトリガーするメモリ使用量のしきい値。 | (0, 1] | 1.0 |
concurrency_limit | このリソースグループ内の同時クエリの最大数。 | 整数 (0 より大きい場合に有効) | 0 |
big_query_cpu_second_limit | 各 BE ノードでの大規模クエリタスクの最大 CPU 時間(秒)。 | 整数 (0 より大きい場合に有効) | 0 |
big_query_scan_rows_limit | 各 BE ノードで大規模クエリタスクがスキャンできる最大行数。 | 整数 (0 より大きい場合に有効) | 0 |
big_query_mem_limit | 各 BE ノードで大規模クエリタスクが使用できる最大メモリ。 | 整数 (0 より大きい場合に有効) | 0 |