26.2. リソース配分モデルの概要
リソース管理では、systemd
はコントロールグループバージョン 2 (cgroups-v2
) インターフェイスを使用します。
デフォルトでは、RHEL 8 は cgroups-v1
を使用します。したがって、cgroups-v2
を有効にして、systemd
がリソース管理に cgroups-v2 インターフェイスを使用できるようにする必要があります。cgroups-v2
を有効にする方法の詳細については、 cgroups-v2 のマウント を参照してください。
システムリソースの配分を変更するには、以下のリソース配分モデルの 1 つまたは複数を適用できます。
- 重み
リソースは、すべてのサブグループの重みを合計し、すべての重みの合計と比較した各サブグループの重みに基づいて、各サブグループにリソースの一部を与えることによって配分されます。
たとえば、
cgroups
が 10 個あり、それぞれの重みが 100 の場合には、合計は 1000 で、各cgroup
はリソースの 10 分の 1 を受け取ります。重みは通常、ステートレスリソースの配分に使用されます。コントロールグループの重みを調整するには、CPUWeight= オプションを使用します。
- 制限
cgroup
は、設定したリソースの量だけ使用できますが、リソースをオーバーコミットすることもできます。そのため、サブグループ制限の合計は、親cgroup
の制限を超える可能性があります。コントロールグループの制限を調整するには、MemoryMax= オプションを使用します。
- 保護
cgroup
に、保護するリソース量を設定できます。リソースの使用量が保護するリソース量を下回る場合でも、カーネルは、このcgroup
にペナルティーを課さず、同じリソースを取得しようとしている他のcgroup
を優先しません。オーバーコミットも可能です。コントロールグループの保護リソース量を調整するには、MemoryLow= オプションを使用します。
- 割り当て
- リアルタイムの予算など、上限のあるリソースの特定の量を排他的に割り当てます。オーバーコミットが可能です。