更改交换性是否需要重新启动?


14

如果我将swappiness值配置为另一个值,例如从60到0,那么我总是需要重新引导计算机以使更改生效?即使使用以下命令进行修改:

sysctl -w vm.swappiness=0

Answers:


25

您提供的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

希望现在对您更加清楚!


有趣的是,该-w开关应该写入更改。有人会认为,写完这些之后,就不必在sysctl.conf中添加默认行。
WEBjuju

嗨,WEBjuju,您是对的,该开关仍然对我不起作用(fedora 25或centos 7)。这样就不需要了,因为无论如何都不会更改/ proc文件中的实时值。
tisc0

7

需要重启机器使更改生效吗?

相反,实际上,重新启动会将交换值重置为其默认值。为了使它在重新启动后仍然存在,您需要在启动脚本中包含一个指令,或者通过添加以下内容使用Wikipedia文章中建议的方法:

vm.swappiness = ??

/etc/sysctl.conf(或/etc/sysctl.d文件),??您要使用的值在哪里。请注意,仅添加此内容将不会引起任何更改。


1

可接受的答案是正确的,但是建议使用单独的“ 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

同意,这是最佳做法,可以使事情更清晰,更安全。使用配置管理工具时也要养成良好的习惯。
tisc0

1

我发现在一台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

1
/etc/tuned/tuned-main.conf(RHEL7)的设置允许/etc/sysctl.conf、/etc/sysctl.d等覆盖通过tuned应用的设置(即reapply_sysctl = 1)。至少在我的安装中,这是默认设置。
kbulgrien '18

0

sysctl根据惯例,用户对的更改将进入带有前缀的文件,60-因此文件名应为/etc/sysctl.d/60-swappiness.confservice procps start以root用户身份执行以强制重新读取配置值(无需重新引导)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.