概要
ワークロード管理は、Dorisの非常に重要な機能であり、システム全体の管理において重要な役割を果たします。合理的なワークロード管理戦略により、リソース使用率を最適化し、システムの安定性を向上させ、応答時間を短縮することができます。以下の機能があります:
-
リソース分離:複数のグループに分割し、各グループにリソース(CPU、Memory、IO)の制限を設定することで、複数のユーザーまたは同一ユーザーの異なるタスク(読み取りおよび書き込み操作など)間の干渉がないことを保証します。
-
同時実行制御とキューイング:クラスター全体で同時に実行できるタスク数を制限できます。閾値を超えた場合、タスクはキューイングされます。
-
Circuit Breaker:クエリ計画フェーズまたは実行フェーズにおいて、読み取り予定のパーティション数の推定値、スキャンするデータ量、割り当てられるメモリサイズ、実行時間などの条件に基づいて、タスクを自動的にキャンセルできます。これにより、非合理的なタスクが過度にシステムリソースを占有することを回避します。
リソース分離方法
Dorisは以下の3つの方法でリソースを分割できます:
-
Resource Group:複数のBEプロセスをグループに分割し、各BEにtagを設定します。
-
Workload Group:BE内のリソース(CPU、Memory、IO)をCgroupを通じて複数のリソースグループに分割し、より細かいリソース分離を実現します。
以下の表は、異なるリソース分割方法の特性と有利なシナリオを記録しています:
| リソース分離方法 | 分離粒度 | Soft/Hard Limit | Cross Resource Group Query |
|---|---|---|---|
| Resource Group | BEノードレベル、完全なリソース分離、BE障害を分離可能 | Hard limit | サポートしません。また、リソースグループ内に少なくとも1つのデータコピーが保存されていることを確認する必要があります。 |
| Workload Group | BEプロセス内の分離;BE障害は分離できません | Hard limitとsoft 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は通常、一時的なクエリピークや短期間のデータ書き込み増加など、突発的なリソース制御に使用されます。