CentOS7/RHEL7如何修改swappiness值?
- 2020 年 2 月 1 日
- 筆記
示例:修改swappiness值為0
永久配置方法:
sysctl -w vm.swappiness=0
echo vm.swappiness = 0 >> /etc/sysctl.conf
臨時配置方法:
sysctl -w vm.swappiness=0
手動更改/sys/fs/cgroup/memory下子目錄對應的memory.swappiness值
臨時配置後可能出現的故障描述:
物理記憶體還比較充足,vm.swappiness已經設置為0,但系統還是用了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值。