为什么EXT4文件系统同时挂载了relatime和lazytime

为什么EXT4文件系统同时挂载了relatime和lazytime

我正在运行 Debian/Testing,内核为 4.4:

# uname -a
Linux shaula 4.4.0-1-amd64 #1 SMP Debian 4.4.6-1 (2016-03-17) x86_64 GNU/Linux

所以我想使用lazytimemount 选项,这就是为什么我将以下内容放入我的/etc/fstab

# grep vg_crypt-root /etc/fstab 
/dev/mapper/vg_crypt-root   /   ext4   lazytime,errors=remount-ro   0   1

但是,现在文件系统似乎是用两个都 relatimelazytime

# grep vg_crypt-root /etc/mtab 
/dev/mapper/vg_crypt-root / ext4 rw,lazytime,relatime,errors=remount-ro,data=ordered 0 0

怎么会这样?

答案1

好消息:这是预料之中的。

lazytime 标志独立于 strictatime/relatime/noatime。默认是relatime。因此,当您用lazytime 替换noatime 时,看到relatime 挂载选项被设置也就不足为奇了。

--特德·曹

不幸的是,这并没有解释它的含义。

逐字阅读联机帮助页表明 relatime 抑制两个都内存更新和磁盘写入。 lazytime 仅抑制磁盘写入(并且适用于 mtime 和 atime)。考虑到导致延迟时间实施的讨论,这对我来说是有意义的。 IOW,编写关系测试将非常容易。但lazytime的效果是仅有的如果您查看磁盘写入或测试不干净的关闭会发生什么,就可以看到。


就个人而言,lazytime 对 mtime 的影响听起来有点奇怪。也许这对于正常运行时间长的系统来说是一个很好的优化,但我不知道普通台式机的情况如何......而现在这实际上是一台笔记本电脑;我们不应该对电源故障时未定义或奇怪的部分定义行为如此热心。如果您考虑像 btrfs 这样的写时复制文件系统,情况就更特殊了;即使文件大小变大,“inode”也可能会更新改变。相比之下,relatime它是可爱且确定的。

并且,只有当您写入大量文件且文件大小不改变时,mtime 优化似乎才有用。我不确定是否有一个共同的基准。我想这是一些非常重要的数据库工作负载。

说真的,特德,为什么我们没有得到lazyatime

相关内容