重启后为什么不改变swappiness仍然是永久性的?

系统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:无效的参数

如果我只是将60改为10而文件保存没有问题我检查发生的变化是用cat /proc/sys/vm/swappiness它表明发生了变化

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

如果要在不重新启动的swapiness下设置swapiness ,可以执行以下命令:

 echo 10 > /proc/sys/vm/swappiness 

在这种情况下,这将把swapiness设置为10。 你只能回显一个数字,因为所有这一切都是调用内核函数将swapiness设置为10,这个函数只接受数字(这解释了为什么你得到一个无效的参数错误:你试图写其他字符而不是数字) 。

但是,这只是暂时的。 该值将在下次重新引导时重置为默认值。

要使更改永久化:

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

     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具有相同的效果)。