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

概要

ワークロード管理はDorisの非常に重要な機能であり、システム全体の管理において重要な役割を果たします。適切なワークロード管理戦略により、リソース使用率を最適化し、システムの安定性を向上させ、応答時間を短縮できます。以下の機能があります:

  • リソース分離:複数のグループに分割し、各グループにリソース(CPU、Memory、IO)制限を設定することで、複数のユーザー間または同一ユーザーの異なるタスク(読み書き操作など)間で干渉が発生しないことを保証します。

  • 同時実行制御とキューイング:クラスタ全体で同時に実行できるタスク数を制限できます。閾値を超えた場合、タスクはキューに入れられます。

  • サーキットブレーカー:クエリプランニングフェーズまたは実行フェーズにおいて、読み取り予定パーティション数の推定値、スキャン対象データ量、割り当てられたメモリサイズ、実行時間などの条件に基づいて、タスクを自動的にキャンセルできます。これにより、不合理なタスクがシステムリソースを過度に占有することを防ぎます。

リソース分離方法

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