为什么重新启动后对swappiness的更改不会保持永久?

dam*_*ien 13 swap

系统 Ubuntu 14.04

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

以 root 身份打开该文件时,我在添加vm.swappiness = 10并尝试保存时只看到数字 60我收到错误写入 /proc/sys/vm/swappiness: Invalid argument

如果我只是将 60 更改为 10,则文件可以毫无问题地保存,我会检查发生的更改,cat /proc/sys/vm/swappiness它显示发生了更改

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

Lou*_*sen 23

如果你想在swapiness不重启的情况下设置你可以执行以下命令:

echo 10 > /proc/sys/vm/swappiness
Run Code Online (Sandbox Code Playgroud)

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

然而,这只是暂时的。该值将在下次重新启动时重置为默认值。

要使更改永久化:

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

    sudo nano /etc/sysctl.conf
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将以下行添加到文件中:

    vm.swappiness = 10
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用CTRL+保存文件X

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

  • 并检查它 `cat /proc/sys/vm/swappiness` (2认同)