系统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,并且此函数仅接受数字(这解释了为什么您会收到无效参数错误:您试图写入数字以外的其他字符)。
但这只是暂时的。下次重启时该值将重置为默认值。
要使更改永久生效:
/etc/sysctl.conf
以 root 身份编辑sudo nano /etc/sysctl.conf
在文件中添加以下行:
vm.swappiness = 10
CTRL使用+保存文件X
所做的更改sysctl.conf
将在重新启动时应用,或者您可以使用重新加载它们sudo sysctl -p
(因此sudo sysctl -p
将具有与本例相同的效果echo 10 > /proc/sys/vm/swappiness
)。
答案2
您可以直接按照以下步骤进行永久设置:
vi /etc/sysctl.conf
- 添加
vm.swappiness=10
:x
sysctl -p
临时做法如下:
echo 10 > /proc/sys/vm/swappiness
附言:重启后此状态不会持续