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

CREATE WORKLOAD GROUP

デスクリプション

このステートメントはワークロードグループを作成するために使用されます。ワークロードグループは、単一のbe上でcpuリソースとmemoryリソースの分離を可能にします。

grammar:

CREATE WORKLOAD GROUP [IF NOT EXISTS] "rg_name"
PROPERTIES (
property_list
);

図解:

property_listでサポートされるプロパティ:

  • cpu_share: 必須、ワークロードグループが取得できるCPU時間の設定に使用され、CPUリソースのソフト分離を実現できます。cpu_shareは実行中のワークロードグループで利用可能なCPUリソースの重みを示す相対値です。例えば、ユーザーがcpu_shareをそれぞれ10、30、40に設定した3つのワークロードグループrg-a、rg-b、rg-cを作成し、ある時点でrg-aとrg-bがタスクを実行している一方、rg-cにタスクがない場合、rg-aは(10 / (10 + 30)) = 25%のCPUリソースを取得でき、ワークロードグループrg-bは75%のCPUリソースを取得できます。システムで実行されているワークロードグループが1つだけの場合、そのcpu_shareの値に関係なく、すべてのCPUリソースを取得します。

  • memory_limit: 必須、ワークロードグループが使用できるbeメモリの割合を設定します。ワークロードグループのメモリ制限の絶対値は: physical_memory * mem_limit * memory_limitです。ここでmem_limitはbeの設定項目です。システム内のすべてのワークロードグループのmemory_limitの合計は100%を超えてはいけません。ワークロードグループは、ほとんどの場合、グループ内のタスクに対してmemory_limitの使用が保証されます。ワークロードグループのメモリ使用量がこの制限を超えた場合、グループ内でより多くのメモリを使用しているタスクがキャンセルされ、超過分のメモリが解放される場合があります。enable_memory_overcommitを参照してください。

  • enable_memory_overcommit: オプション、ワークロードグループのソフトメモリ分離を有効にします。デフォルトはfalseです。falseに設定した場合、ワークロードグループはハードメモリ分離され、ワークロードグループのメモリ使用量が制限を超えた直後に最大のメモリ使用量を持つタスクが即座にキャンセルされ、超過分のメモリが解放されます。trueに設定した場合、ワークロードグループはハードメモリ分離され、ワークロードグループのメモリ使用量が制限を超えた直後に最大のメモリ使用量を持つタスクが即座にキャンセルされ、超過分のメモリが解放されます。trueに設定した場合、ワークロードグループはソフト分離され、システムに空きメモリリソースがある場合、ワークロードグループはmemory_limit制限を超えてシステムメモリを継続して使用でき、システム全体のメモリが逼迫した時に、グループ内で最大のメモリ使用量を持ついくつかのタスクをキャンセルし、超過分のメモリの一部を解放してシステムメモリ圧迫を緩和します。ワークロードグループでこの設定を有効にする場合、すべてのワークロードグループのmemory_limitの合計を100%未満にし、残りの部分をワークロードグループのメモリオーバーコミット用に使用することを推奨します。

  1. g1という名前のワークロードグループを作成:

     create workload group if not exists g1
    properties (
    "cpu_share"="10",
    "memory_limit"="30%",
    "enable_memory_overcommit"="true"
    );

Keywords

CREATE、WORKLOAD、GROUP