CREATE WORKLOAD GROUP
説明
このステートメントは、workload groupを作成するために使用されます。Workload groupsは、単一のbe上でcpuリソースとmemoryリソースの分離を可能にします。
構文
CREATE WORKLOAD GROUP [IF NOT EXISTS] "rg_name"
PROPERTIES (
`<property>`
[ , ... ]
);
Parameters
1.<property>
<property> の形式は <key> = <value> で、<key> に指定可能な値は以下の通りです:
| Parameter | Description | Required |
|---|---|---|
<cpu_share> | ワークロードグループが取得できるcpu時間を設定するために使用され、cpuリソースのソフト分離を実現できます。cpu_shareは、実行中のワークロードグループが利用可能なcpuリソースの重みを示す相対値です。例えば、ユーザーがrg-a、rg-b、rg-cの3つのワークロードグループをそれぞれcpu_share 10、30、40で作成し、ある時点でrg-aとrg-bがタスクを実行していてrg-cにタスクがない場合、rg-aは (10 / (10 + 30)) = 25% のcpuリソースを取得でき、ワークロードグループrg-bは75%のcpuリソースを取得できます。システムで実行中のワークロードグループが1つだけの場合、cpu_shareの値に関係なく、すべてのcpuリソースを取得します。 | Y |
<memory_limit> | ワークロードグループが使用できるbeメモリの割合を設定します。ワークロードグループのメモリ制限の絶対値は:physical_memory * mem_limit * memory_limit で、mem_limitはbe設定項目です。システム内のすべてのワークロードグループのmemory_limitの合計は100%を超えてはいけません。ワークロードグループは、ほとんどの場合、グループ内のタスクに対してmemory_limitの使用が保証されます。ワークロードグループのメモリ使用量がこの制限を超えた場合、メモリ使用量の大きいグループ内のタスクがキャンセルされて余剰メモリが解放される可能性があります。enable_memory_overcommitを参照してください。 | Y |
<enable_memory_overcommit> | ワークロードグループのソフトメモリ分離を有効にします。デフォルトはfalseです。falseに設定すると、ワークロードグループはハードメモリ分離され、ワークロードグループのメモリ使用量が制限を超えた直後に、メモリ使用量が最も大きいタスクが即座にキャンセルされて余剰メモリが解放されます。trueに設定すると、ワークロードグループはハードメモリ分離され、ワークロードグループのメモリ使用量が制限を超えた直後に、メモリ使用量が最も大きいタスクが即座にキャンセルされて余剰メモリが解放されます。trueに設定すると、ワークロードグループはソフト分離され、システムに空きメモリリソースがある場合、ワークロードグループはmemory_limit制限を超えてもシステムメモリを継続使用でき、システム全体のメモリが逼迫した時には、メモリ占有量が最も大きいグループ内の複数のタスクをキャンセルし、余剰メモリの一部を解放してシステムメモリの圧迫を緩和します。ワークロードグループでこの設定を有効にする場合、すべてのワークロードグループのmemory_limitの合計を100%未満にし、残りの部分をワークロードグループのメモリオーバーコミット用に使用することを推奨します。 | Y |
Examples
-
g1という名前のワークロードグループを作成する:
create workload group if not exists g1
properties (
"cpu_share"="10",
"memory_limit"="30%",
"enable_memory_overcommit"="true"
);