CentOS7/RHEL7如何修改swappiness值?

 

示例:修改swappiness值为1

 

 

 

永久配置方法:

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值。

La2yCat

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>