为了减少文件系统的频繁内存刷新,我在 中添加了以下两行/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
如果该文件保留在原处,则每次重新启动时它都会运行。