メインコンテンツまでスキップ
バージョン: 4.x

概要

ワークロード管理は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 MethodIsolation GranularitySoft/Hard LimitCross Resource Group Query
Resource GroupBEノードレベル、完全なリソース分離、BE障害を分離可能Hard limitサポートしない。リソースグループ内にデータのコピーを少なくとも1つ保存することを保証する必要がある。
Workload GroupBEプロセス内での分離;BE障害は分離できないHard limitとsoft limit両方サポート
Compute GroupBEノードレベル、完全なリソース分離、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は通常、一時的なクエリピークや短期間のデータ書き込み増加など、突発的なリソース制御に使用されます。