为什么重启后 swappiness 的改变不会永久保留?

为什么重启后 swappiness 的改变不会永久保留?

系统Ubuntu 14.04

我想将 swappiness 从默认的 60 改为 10。根据这个答案https://askubuntu.com/a/103916/71679我需要以 root 身份登录并编辑/proc/sys/vm/swappiness并添加或编辑vm.swappiness = 10

当我以 root 身份打开该文件时,我只看到数字 60,当我添加vm.swappiness = 10并尝试保存时,我收到 Error writing /proc/sys/vm/swappiness: Invalid param

如果我只是将 60 改为 10,文件就会保存,不会出现问题。我检查更改是否发生,cat /proc/sys/vm/swappiness它显示更改已发生

通过以 root 身份编辑此文件,我假设更改将保持永久,但一旦我关闭并重新启动,默认值将恢复为 60。为什么更改不会保持永久?重启后将文件恢复到 60 是什么?

答案1

如果您想设置swapiness而不重新启动,您可以执行以下命令:

echo 10 > /proc/sys/vm/swappiness

在这种情况下,这会将设置swapiness为 10。您只能回显数字,因为这将调用内核函数将设置swapiness为 10,并且此函数仅接受数字(这解释了为什么您会收到无效参数错误:您试图写入数字以外的其他字符)。

但这只是暂时的。下次重启时该值将重置为默认值。

要使更改永久生效:

  1. /etc/sysctl.conf以 root 身份编辑

    sudo nano /etc/sysctl.conf
    
  2. 在文件中添加以下行:

    vm.swappiness = 10
    
  3. CTRL使用+保存文件X

所做的更改sysctl.conf将在重新启动时应用,或者您可以使用重新加载它们sudo sysctl -p(因此sudo sysctl -p将具有与本例相同的效果echo 10 > /proc/sys/vm/swappiness)。

答案2

您可以直接按照以下步骤进行永久设置:

  1. vi /etc/sysctl.conf
  2. 添加vm.swappiness=10
  3. :x
  4. sysctl -p

临时做法如下:

  1. echo 10 > /proc/sys/vm/swappiness

附言:重启后此状态不会持续

相关内容