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= オプションを使用します。
- 割り当て
- リアルタイムの予算など、上限のあるリソースの特定の量を排他的に割り当てます。オーバーコミットが可能です。