如何为所有systemd cgroup设置默认的memory.swappiness?

在CentOS 7中,我如何为所有的systemd cgroup设置默认的memory.swappiness? 我可以通过ControlGroupAttribute选项为每个cgroup执行此操作,但是我想覆盖所有cgroup的默认值60。

如果你想为所有的cgroups做这个,你想为整个系统做这个吗? 如果是这种情况,可以在“/etc/sysctl.conf”中设置swappiness系统。 您要编辑的行是“vm.swappiness =”,您可以将其设置为0到100之间的任何值。

作为一个公平的警告,任何人为了避免完全交换而将这个值作为一种方式,设置这个非常低的值将几乎完全禁止按需分页,这是一个非常有用的方法,将空闲的页面从RAM中取出并交换。 是的,这是“交换”,但这不是一个绝望的事情,当我们用完记忆时,传统的旧的交换意义不大。 按需分页在大型数据库中特别有用,它不应该真的放慢速度。 当我们最后一秒钟内存不足的时候,它肯定会把事情交换出去,因为需求调页有助于在系统停顿而不是停顿之后,不再发生这种情况。 系统范围内的vm.swappiness的设置为0可能导致系统在压力较大的情况下导致OOM杀死进程,从而可能导致整个系统陷入内核恐慌。

另外值得一提的是,编辑之后,您必须调用sysctl.conf文件进行读取。 # sysctl -p读取已在/etc/sysctl.conf中修改的行。 vm.swappiness可以通过这种方式在正在运行的系统上进行更改,或者使用procfs进行更改: # echo 50 > /proc/sys/vm/swappiness ,其中50是从0到100之间的任意数字。