メインコンテンツまでスキップ
に最終更新

ワークロード管理の概要:リソース分離、スロットリング、サーキットブレーク

Doris のワークロード管理機能は、複数のテナントや業務部門が単一のクラスターを共有する際のリソース競合に対処します。ワークロード管理ポリシーを適切に設定することで、リソースを分離し、クエリによるクラスターの過負荷を防ぎ、業務の SLA を守ることができます。

主な機能は次の三つです。

  • リソース分離:クラスターのリソース(CPU、メモリ、IO)を複数のグループに分け、異なるユーザーや業務部門が互いに影響しないようにします。
  • 同時実行制御とキューイング:クラスターが同時に実行するタスクの数を制限します。しきい値を超えると新しいタスクが自動的にキューに入り、同時実行数の急増によるシステムの過負荷を防ぎます。
  • サーキットブレーク:クエリの計画段階または実行中に、スキャンするデータ量、割り当てられたメモリ、実行時間などの条件に基づいて異常なタスクを自動的にキャンセルし、単一のクエリがリソースを過度に消費することを防ぎます。

リソースの分割方法​

Doris は、デプロイモードと分離要件に応じて、次の三つのリソースグループ化方法を提供します。

リソース分離の方法分離の単位ソフトリミット/ハードリミットグループ間クエリ適用シナリオ
Resource Groupサーバーノード単位でリソースを完全に分離し、BE の障害も分離できるハードリミットのみサポートされない。少なくとも一つのレプリカをリソースグループ内に保存する必要があるストレージ・コンピュート一体型モードでの強力な分離
Workload GroupBE プロセス内で分離するため、BE の障害は分離できないソフトリミットとハードリミットサポートされるきめ細かなリソース割り当て、突発的なトラフィックの制御
Compute Groupサーバーノード単位でリソースを完全に分離し、BE の障害も分離できるハードリミットのみサポートされないストレージ・コンピュート分離型モードでの強力な分離

各方法の詳細は次のとおりです。

  • Resource Group:BE ノードを最小単位とし、タグを設定してクラスターを複数のリソースグループに分けます。ストレージ・コンピュート一体型モードに適用します。
  • Workload Group:Cgroups を使用して単一の BE 内のリソースをさらに分割し、プロセス内でのきめ細かなリソース割り当てを可能にします。
  • Compute Group:ストレージ・コンピュート分離型モードのリソースグループ化方法です。Resource Group と同様に、BE ノードを最小単位とします。

ソフトリミットとハードリミット​

ハードリミットは、どのテナントも超えられないリソース使用量の絶対的な上限です。ハードリミットに達すると、上限を超えるリソース要求は直ちに拒否されます。ハードリミットは、クラスターのリソースの枯渇や業務部門間での競合を防ぎ、クラスター全体の安定性を守ります。

ソフトリミットは、一時的に超えることができるリソース使用量の上限です。システムに余裕がある場合、テナントは他のリソースグループの未使用リソースを借りることができます。システムが高負荷でリソース競合が生じている場合、ソフトリミットを超える要求には追加のリソースが割り当てられません。ソフトリミットは、クエリの一時的な急増や短期間のデータ取り込み量の増加など、突発的なトラフィックに適しています。

リソースの分割方法とリミットの種類の対応は次のとおりです。

分割方法ソフトリミットのサポートハードリミットのサポート
Resource Groupなしあり
Workload Groupありあり
Compute Groupなしあり