使用 atime 挂载 /

使用 atime 挂载 /

我正在尝试使用atime启动选项挂载我的根分区。我正在运行 Ubuntu 14.04。

我修改了我的/etc/fstab文件:

UUID=334a0fe1-2636-4ee6-93b5-8748c5313c79 / ext4 atime,errors=remount-ro 0

...但这没有效果:

$ mount | head -n1
# => /dev/sda1 on / type ext4 (rw,errors=remount-ro)

请问我需要做什么?

答案1

从 Fstab 页面:

atime 选项:

以下选项atime可能会影响驱动器性能。

  1. atime选项表示使用内核默认值。从内核 2.3 左右开始,内核默认值为。如果指定了或 ,relatime则不需要此选项。defaultsrelatime

  2. strictatime选项在每次访问文件时更新文件的访问时间。当 Linux 用于服务器时,这更有用;对于桌面使用来说,它没有太大价值。此strictatime选项的缺点是,即使从页面缓存读取文件(从内存而不是驱动器读取)仍会导致写入!

  3. noatime选项完全禁止每次读取文件时将文件访问时间写入驱动器。这适用于几乎所有应用程序,除了那些需要知道文件自上次修改以来是否被读取的应用程序。启用此选项后,每次写入文件时,文件的写入时间信息都会继续更新。

  4. nodiratime选项仅对目录禁用文件访问时间的写入,而其他文件仍可写入访问时间。注意:noatime暗示nodiratime。您不需要同时指定两者。

  5. relatime选项目前是内核默认值。仅当上次访问时间早于当前修改或更改时间时,它才会更新访问时间。此外,自 Linux 2.6.30 起,如果上次访问时间超过 24 小时,则始终会更新访问时间。当未指定defaults 选项或选项时,将使用此选项。atime

  6. 在内核 4.0 及更新版本中,该lazytime选项通过仅在内存中维护对 inode 时间戳(访问、修改和创建时间)的更改来减少对磁盘的写入。磁盘上的时间戳仅在以下情况下更新:
    a) 文件 inode 需要更新以进行与文件时间戳无关的某些更改,
    b) 发生与磁盘的同步,
    c) 未删除的 inode 从内存中逐出,或
    d) 如果自上次将内存中的副本写入磁盘以来已超过 24 小时。

因此你需要:

UUID=334a0fe1-2636-4ee6-93b5-8748c5313c79 / ext4 strictatime,errors=remount-ro 0 1

如果您拥有内核 4.0 或更新版本,我建议添加“lazytime”以提高性能并减少驱动器写入:

UUID=334a0fe1-2636-4ee6-93b5-8748c5313c79 / ext4 strictatime,lazytime,errors=remount-ro 0 1

资料来源:

https://wiki.archlinux.org/index.php/fstab
https://en.wikipedia.org/wiki/Stat_%28system_call%29#Solutions

相关内容