概要
ワークロード管理はDorisの非常に重要な機能であり、システム全体の管理において重要な役割を果たしています。合理的なワークロード管理戦略により、リソース使用率を最適化し、システム安定性を向上させ、応答時間を短縮できます。以下の機能があります:
-
リソース分離:複数のグループに分割し、各グループにリソース(CPU、Memory、IO)制限を設定することで、複数ユーザー間や同一ユーザーの異なるタスク(読み取り・書き込み操作など)間での干渉がないことを保証します。
-
同時実行制御とキューイング:クラスター全体で同時実行可能なタスク数を制限できます。しきい値を超えた場合、タスクはキューに入れられます。
-
Circuit Breaker:クエリ計画フェーズまたは実行フェーズにおいて、読み取り予定パーティション数の推定値、スキャンするデータ量、割り当てメモリサイズ、実行時間などの条件に基づいてタスクを自動的にキャンセルできます。これにより、不合理なタスクが過度にシステムリソースを占有することを避けます。
リソース分離方法
Dorisは以下の3つの方法でリソースを分割できます:
-
Resource Group:複数のBEプロセスをグループに分割し、各BEにtagを設定します。
-
Workload Group:BE内のリソース(CPU、Memory、IO)をCgroupを通じて複数のリソースグループに分割し、より細かいリソース分離を実現します。
-
Compute Group:compute-storage decoupledモードにおけるリソース分割方法です。Resource Groupと同様に、BEを最小粒度として複数グループに分割します。
以下の表は、異なるリソース分割方法の特徴と有利なシナリオを記録しています:
| Resource Isolation Method | Isolation Granularity | Soft/Hard Limit | Cross Resource Group Query |
|---|---|---|---|
| Resource Group | BEノードレベルで完全なリソース分離、BE障害を分離可能 | Hard limit | サポートしません。リソースグループ内に少なくとも1つのデータコピーが保存されていることを保証する必要があります。 |
| Workload Group | BEプロセス内での分離;BE障害は分離できません | Hard limitとsoft limitの両方 | サポート |
| Compute Group | BEノードレベルで完全なリソース分離、BE障害を分離可能 | Hard limit | サポートしません |
Soft LimitとHard Limit
-
Hard Limit:hard limitとは、テナントが超過できないリソース使用量の絶対上限を指します。hard limitに達すると、超過部分のリソース要求は拒否されます。Hard limitは一般的に、クラスター内のリソース枯渇や異なるビジネス間でのリソース奪取を防ぎ、クラスターの安定性とパフォーマンスを保証するために使用されます。
-
Soft Limit:soft limitとは超過可能なリソース制限で、通常はリソース使用量の推奨上限を表します。システムが忙しくない時、テナントがsoft limitを超えるリソースを要求した場合、他のグループからリソースを借用できます。システムが忙しくリソース競合がある時、テナントがsoft limitを超えるリソースを要求しても、追加リソースを取得できません。
Resource Group / Compute Group方式でリソースを分割する場合、hard limitモードのみサポートされます。Workload Group方式でリソースを分割する場合、Workload Groupのsoft limitとhard limitの両方がサポートされます。Workload Groupのsoft limitは通常、一時的なクエリピークや短期的なデータ書き込み増加などの突発的なリソース制御に使用されます。