增加fstab中的“ commit”的优点/缺点


14

过去,我做了很多晦涩的系统优化工作,但是在powertop告诉我应该将USB端口设置为自动挂起后,我便摆脱了大多数此类优化工作,这迫使它们进入永久睡眠状态,并且在我意识到更高交换性的好处之后

但是今天,在看的时候/etc/fstab,我注意到我已经commit=60// home设置了选项。我记得这是针对笔记本电脑的优化,以减少写入磁盘的次数,从而节省电池。但是后来我开始担心这可能会导致数据丢失(有时我的电池断开连接,然后在启动时fsck告诉我一些孤儿inode)。

在寻找此选项的解释时,我得出以下解释(第二种解释似乎与我以前的理解相抵触):

$ man mount | awk '/commit=/,/^$/'
commit=nrsec
    Sync all data and metadata every nrsec seconds. The default value is 5 seconds.
    Zero means default.

https://forums.gentoo.org/viewtopic-p-4088752.html

commit = 60会停止“立即”(默认为5秒)优先于超读的写入,并在几秒钟后将写入缓存。在大量读写混合在一起的情况下,这是很好的选择,在这种情况下,用户希望优先进行读取,以便处理器可以保持忙碌状态,而不是在等待写入完成之前暂停,然后再继续读取。

我所看到的一个真实示例正在等待几秒钟,以使Gnome下拉菜单出现,这似乎没有任何原因。原因是磁盘忙于写入,因此CPU必须等待写入完成才能从磁盘获取所有数据以显示菜单。

什么是提交真的?增加它真的有好处(例如响应速度和节能)吗?可能会导致数据丢失吗?

Answers:


12

什么是提交真的?

我认为最好的解释之一是给这里allquixotic

增加它真的有好处(例如响应能力和节能)吗?可能会导致数据丢失吗?

根据ext4官方文档

可以告诉Ext4每隔“ nrsec”秒同步其所有数据和元数据。默认值为5秒。这意味着,如果 您断电,您将损失多达最近5秒钟的工作量 (由于日志功能,您的文件系统不会受到损坏)。此默认值(或任何低值)会影响 性能,但对数据安全性很有好处。将其设置为0与将其保留为默认值(5秒)具有相同的效果。将其设置 为非常大的值将提高性能

commit值增加意味着您可能会丢失多达N秒钟的工作时间(其中N =提交间隔),尽管在大多数情况下这不会发生,因为软件仍然可以调用fsync()并将其数据写入磁盘,从而覆盖提交设置。您可以将其视为“至少经常将所有内容写入磁盘”1
另一方面,这意味着更少的写操作(这使其在ssd用户中非常流行)和更好的性能(多次写操作合并为一个更大的写操作,在提交时间范围内取消了对先前写操作的更新)。
关于节能,根据此页面,事实证明,如今增加commit价值并不能节省功率。


1
我认为,由于范围和延迟分配可以更好地优化HDD寻道,因此可以节省一些电能。但这可能并不重要。
peterh-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.