1つのプロセスに対してのみスワップをオフにしたいと思います。他のプロセスでは、交換は通常どおりに機能します。
これを達成するためにcgroupをどのように使用できますか?
答え1
~からカーネル文書メモリと交換可能性情報:
5.3 swappiness
/proc/sys/vm/swappinessに似ていますが、グループ階層にのみ影響します。
cgroup に続く Swappiness は変更できません。
- ルートcgroup(/proc/sys/vm/swappinessを使用)。
- 以下の他のcgroupと一緒に階層的なcgroupを使用します。
– 階層のルートで cgroup の代わりに階層を使用します。
Red Hatカスタマーポータルでは:
memory.swappiness
ページキャッシュからページを回収する代わりに、このcgroupの操作で使用されるプロセスメモリを置き換えるためのカーネル設定を設定します。これは、システム全体に対して/proc/sys/vm/swappinessで設定されたのと同じ方法で計算されたのと同じ傾向です。デフォルトは60です。 60より小さい値はプロセスメモリを交換しようとしているカーネルの傾向を減らし、60より大きい値はプロセスメモリを交換しようとしているカーネルの傾向を増加させ、100より大きい値はカーネルがプロセスメモリの一部であるページを置き換えることを可能にしますします。 。この cgroup 内のプロセスのアドレス空間です。
値が0であるため、プロセスメモリがスワップアウトされるのを防ぐことはできません。システムメモリが不足しても、グローバル仮想メモリ管理ロジックがcgroup値を読み取らないため、スワップアウトが発生する可能性があります。ページを完全にロックするには、cgroupの代わりにmlock()を使用してください。
:: 次のグループのスワップ可能性は変更できません。
* /proc/sys/vm/swappiness に設定されたスワップ可能性を使用するルート cgroup。
* 下にはサブグループがある cgroup があります。
編集する: 設定方法を正確に知りたい場合は、他のほとんどのcgroupプロパティのように設定できます。
# cd /mnt/cgroup/<cgroupName>
# cat memory.swappiness
60
# echo "59 " > memory.swappiness
# cat memory.swappiness
59