重启后 /etc/sysctl.conf 不存在

重启后 /etc/sysctl.conf 不存在

为了减少文件系统的频繁内存刷新,我在 中添加了以下两行/etc/syctl.conf

vm.dirty_background_ratio = 50
vm.dirty_ratio = 80

然后我运行,sudo sysctl -p更改立即生效。但是,在系统重新启动后,我仍然看到 dirty_ratio 和 dirty_background_ratio 的旧值。

new-sys-admin@ThinkPad:~$ sysctl -n vm.dirty_background_ratio 
10
new-sys-admin@ThinkPad:~$ sysctl -n vm.dirty_ratio 
5

我正在运行 Ubuntu 12.04.3 LTS 3.2.0-52-generic-pae。看了几篇帖子后:

它看起来像是新贵的工作,/etc/init.d/procps应该在系统启动和重新加载时运行,/etc/sysctl.d/*/etc/sysctl.conf似乎/etc/init/procup.conf并非如此。

下次重启后,我运行了service procps start,更改已生效。我想知道如何让 procps 在启动时持续运行,以及我是否缺少使这些更改持久的额外步骤。

编辑1

/etc/sysctl.d/10-local.conf还尝试按照 Bill 的建议获取这些值。

new-sys-admin@ThinkPad:~$ cat /etc/sysctl.d/10-local.conf 
vm.dirty_background_ratio = 50
vm.dirty_ratio = 80

重新启动后,值将恢复。

答案1

答案来自胃肠道以上也解决了我的问题。

/usr/lib/pm-utils/power.d/laptop-mode写入值dirty_ratio=10 dirty_background_ratio=5 writeback_centisecs=500 sysctl 处理了中的文件/etc/sysctl.d

但我对于在 pm 脚本中注释掉一行感到不太舒服。

因为我在桌面系统上运行,并且意识到我不需要dirty_*上面的更改,所以我尝试移至/usr/lib/pm-utils/power.d/laptop-mode另一个位置。 pm 实用程序没有发出任何抱怨。

因此,一种可能性是转移该文件,以便包的更新不会重新创建它。

sudo dpkg-divert --add --rename --divert /usr/lib/pm-utils/power.d/laptop-mode /usr/lib/pm-utils/laptop-mode.diverted

sudo mv /usr/lib/pm-utils/power.d/laptop-mode /usr/lib/pm-utils/laptop-mode.diverted

你应该仅有的如果您想手动调整参数,请执行此操作dirty_ratio dirty_background_ratio writeback_centisecs

对于电源管理实用程序,当他们在 /etc/sysctl.d 中创建一个文件时会更清楚,以便更好地了解正在发生的事情。

答案2

/usr/lib/pm-utils/power.d/laptop-mode函数中注释掉以下行laptop_mode_ac()

write_values 0 10 5 500

那里的价值观变成了:

dirty_ratio = 10
vm.dirty_background_ratio = 5

然后重新启动,sysctl 的值必须保留。

答案3

把你的命令放在 下的文件中/etc/sysctl.d。例如10-local.conf包含以下内容:

vm.dirty_background_ratio = 50
vm.dirty_ratio = 80

如果该文件保留在原处,则每次重新启动时它都会运行。

相关内容