23.2. システムソースの配分モデル
システムリソースの配分を変更するには、以下の配分モデルの 1 つまたは複数を適用できます。
- 重み
全サブグループの重みを合計し、各サブグループに、合計に対する重み比率に応じたリソースを配分します。
たとえば、10 個の cgroup があり、それぞれの重みが 100 の場合、合計は 1000 になります。各 cgroup は、リソースの 10 分の 1 を受け取ります。
重みは通常、ステートレスリソースの配分に使用されます。たとえば、CPUWeight= オプションは、このリソース配分モデルの実装です。
- 制限
cgroup は、設定された量のリソースを消費できます。サブグループ制限の合計は、親 cgroup の制限を超える可能性があります。したがって、このモデルではリソースをオーバーコミットする可能性があります。
たとえば、MemoryMax= オプションは、このリソース配分モデルの実装です。
- 保護
cgroup のリソースの保護された量を設定できます。リソースの使用状況が保護されるリソース量を下回る場合には、カーネルは、同じリソースを取得しようしている他の cgroup が優先されるように、この cgroup にペナルティーを課します。オーバーコミットも可能です。
たとえば、MemoryLow= オプションは、このリソース配分モデルの実装です。
- 割り当て
- リソースに上限がある場合に、絶対量を特別に割り当てます。オーバーコミットはできません。Linux でこのリソースのタイプとして、リアルタイムの予算などが例として挙げられます。
- ユニットファイルオプション
リソース制御設定の設定。
たとえば、CPUAccounting= や CPUQuota= などのオプションを使用して CPU リソースを設定できます。同様に、AllowedMemoryNodes= や IOAccounting= などのオプションを使用して、メモリーまたは I/O リソースを設定できます。