メインコンテンツまでスキップ

概要

ワークロード管理は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を最小粒度として複数のグループに分割します。

以下の表は、異なるリソース分割方法の特徴と有利なシナリオを記録しています:

リソース分離方法分離粒度Soft/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は通常、突発的なリソース制御、例えば一時的なクエリピークや短期間のデータ書き込み増加に使用されます。