如果我将swappiness值配置为另一个值,例如从60到0,那么我总是需要重新引导计算机以使更改生效?即使使用以下命令进行修改:
sysctl -w vm.swappiness=0
如果我将swappiness值配置为另一个值,例如从60到0,那么我总是需要重新引导计算机以使更改生效?即使使用以下命令进行修改:
sysctl -w vm.swappiness=0
Answers:
您提供的Wikipedia页面上的所有内容都得到了很好的解释。
# Set the swappiness value as root
echo 10 > /proc/sys/vm/swappiness
# Alternatively, run this as a non-root user
# This does the same as the previous command
sudo sysctl -w vm.swappiness=10
# Verify the change
cat /proc/sys/vm/swappiness
10
此时,系统将按照您刚刚配置的方式管理交换,但是,如果立即重启,您的更改将被忘记,并且系统将使用默认值(假设为60,这意味着它将以40%的速度开始交换)占用内存)。
您必须在下面添加以下行,/etc/sysctl.conf
以永久保留更改:
vm.swappiness = 10
希望现在对您更加清楚!
可接受的答案是正确的,但是建议使用单独的“ sysctl”配置文件,以免意外覆盖其他设置(如果覆盖全局“ sysctl.conf”,则可能会发生)。
# echo 'vm.swappiness=10' >/etc/sysctl.d/swappiness.conf
那些已经修改了全局配置文件“ /etc/sysctl.conf”的人可能想要从该文件中删除定义此“ swappiness”值的行。您可以使用以下命令从全局配置文件中删除这些行(保留注释):
# sed -i '/^vm.swappiness=/d' /etc/sysctl.conf
现在,要应用新值,请告知sysctl
使用它:
# sysctl -p /etc/sysctl.d/swappiness.conf
或应用所有设置,包括交换:
# sysctl -p /etc/sysctl.d/*
验证一下:
# sysctl vm.swappiness
vm.swappiness = 10
我发现在一台CentOS机器上,它vm.swappiness
是在中设置的
/usr/lib/tuned/virtual-guest/tuned.conf
。
确定在何处默认被设置看,通过tuned
配置文件:
sudo grep -R swap /usr/lib/tuned | grep swappiness
更新默认值后,仍可以设置当前的可交换性,而无需重新启动:
sudo sysctl vm.swappiness=10
并经过以下测试:
cat /proc/sys/vm/swappiness
sysctl
根据惯例,用户对的更改将进入带有前缀的文件,60-
因此文件名应为/etc/sysctl.d/60-swappiness.conf
。service procps start
以root用户身份执行以强制重新读取配置值(无需重新引导)。
-w
开关应该写入更改。有人会认为,写完这些之后,就不必在sysctl.conf中添加默认行。