是否仅使用cgroup关闭交换进程?


15

我只想关闭一个进程的交换。交换对于其他进程应该照常工作。

我如何用cgroups实现呢?

Answers:


9

从有关memory.swappiness 的内核文档中

5.3 swappiness

与/ proc / sys / vm / swappiness相似,但仅影响组的层次结构。

跟随cgroup的交换不能更改。
-根cgroup(使用/ proc / sys / vm / swappiness)。
-使用层次结构的cgroup,并且其下还有其他cgroup。
-使用层次结构而不是层次结构根的cgroup。

从红帽客户门户网站:

memory.swappiness

设置内核倾向于换出此cgroup中的任务使用的进程内存,而不是从页面缓存中回收页面。这与在整个系统的/ proc / sys / vm / swappiness中设置的趋势相同,计算方法相同。默认值为60。小于60的值将减少内核交换进程内存的趋势,大于60的值将增加内核交换进程内存的趋势,而大于100的值将允许内核交换页面的一部分。此cgroup中进程的地址空间。

请注意,值0不会阻止进程内存被换出。当系统内存不足时,由于全局虚拟内存管理逻辑不会读取cgroup值,因此交换仍然可能发生。要完全锁定页面,请使用mlock()而不是cgroups。

::您不能更改以下组的交换能力:
*根cgroup,它使用/ proc / sys / vm / swappiness中设置的交换能力。
*在其下具有子组的cgroup。

编辑: 如果您想知道确切地如何设置它,则可以像大多数其他cgroup属性一样进行设置:

 # cd /mnt/cgroup/<cgroupName>
 # cat memory.swappiness
 60
 # echo "59 " > memory.swappiness
 # cat memory.swappiness
 59

只是对于/tmp装入为的文件tmpfs呢?unix.stackexchange.com/q/146490/56970
CMCDragonkai 2014年

在这里引用内核文档的相关部分是一件好事-链接已断开。
mgarey

linux内核文档的链接已断开。请改用此文件kernel.org/doc/Documentation/cgroup-v1/memory.txt
Andrew Eisenberg,

@AndrewEisenberg如果愿意,可以随意编辑答案
Bratchley

嗯...不会让我。说编辑必须大于6个字符。声誉可能不足。
安德鲁·爱森伯格
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.