我在用powertop
检查我的机器是否设置好了,可以让电池续航时间更长。安装后laptop-mode-tools
除了虚拟机写回超时之外,所有“可调参数”部分都显示“良好”。在powertop
页,似乎表明 1500(即 15 秒)是一个不错的值。检查cat /proc/sys/vm/dirty_writeback_centisecs
显示我的当前值为 60000(即 600 秒或 10 分钟)。我相信更大的值意味着在写入之间等待更长时间(这意味着驱动器旋转频率更低)。我真的需要将超时设置为超过十分钟吗?
答案1
脏写回设置越大,脏页在被刷新到磁盘之前在内存中停留的时间就越长。缺点是,这增加了断电时丢失数据的机会,因为可能会有更多的脏页停留在内存中而未被刷新。
答案2
实际上,您不需要将 dirty_writeback 超时设置为超过 6000 厘秒,而是将其设置为更少。至少 Powertop 会微笑:似乎 Powertop 会检查vm.dirty_writeback = an *exact* value of 1500 csec (15 sec)
。您可以通过将其设置为这值并回头查看 powertop 屏幕。除此之外,@Colin Ian King 明确指出,数据丢失窗口会随着超时时间的增加而扩大。
答案3
我只是想补充一点,以防有人碰巧遇到这种情况。尽管这个设置有点老了,但无论 powertop 怎么说,我们实际上都不应该触碰这个设置。从内核版本 3.5 开始,内核就会使用名为动态回写节流的功能自动调整以获得最佳性能。它允许内核根据系统的可用内存和正在使用的存储设备类型自动调整 vm.dirty_writeback_centisecs 设置。启用此功能后,内核将尝试在最小化内存中的脏数据量和最小化对存储设备的写入次数之间保持平衡。
答案4
我认为更大的值意味着在写入之间等待更长时间(这意味着驱动器旋转频率更低)
不,您只是将磁盘写入操作延迟了 10 分钟。这对电池寿命或减少 SSD 写入没有任何好处。
思考这个值的方式是:“我希望一批磁盘操作持续的最长时间是多少(乘以 2,甚至)”。
如果您有一个应用程序实际上需要 10 分钟(对于普通用户来说,这是一个非常高的值)进行磁盘写入,而该应用程序将受益于 I/O 延迟,例如,对同一文件的多次写入合并为一次写入,那么您可以将超时设置为非常高的值。
tldr; 对于 99.9% 的用户来说,powertop 建议的默认设置已经足够了。
如果您确实想减少对 SSD 的写入,请考虑将文件系统的某些部分放在 tmpfs 上。但这是另一个话题。