CentOS7/RHEL7如何修改swappiness值

/ 0评 / 0


永久配置方法:

sysctl -w vm.swappiness=0

echo vm.swappiness = 1 >> /etc/sysctl.conf

临时配置方法:

sysctl -w vm.swappiness=1

手动更改/sys/fs/cgroup/memory下子目录对应的memory.swappiness值

临时配置后可能出现的故障描述:

物理内存还比较充足,vm.swappiness已经设置为1,但系统还是用了swap分区

故障原因

根因是虚拟机machine.slice和系统system.slices、user.slices等使用了swap空间。

直接原因

通过sysctl -w设置vm.swappiness并不能改变cgroup中machine.slice、system.slices、user.slices等里面对应的memory.swappiness值,这些值继承/sys/fs/cgroup/memory下vm.swappiness的值,当创建子目录后,再创建子目录,此时vm.swappiness的值继承于父目录里对应的vm.swappiness值,因此,在系统运行时,只改变/sys/fs/cgroup/memory这个根目录的值,并不影响已创建子目录的vm.swappiness配置,所以如果需要更改,就要手动操作。

总结

正常情况下,如果在sysctl.conf中配置了vm.swappiness的值,重启之后,所有配置都是新值,但如果手动动态更改,就需要手动更改/sys/fs/cgroup/memory下子目录对应的memory.swappiness值。

发表评论

邮箱地址不会被公开。 必填项已用*标注