哪里可以安全使用 noatime?

Zol*_* K. 5 filesystem atime directory-structure

我正在尝试优化我的新 fs 布局,我想知道在哪里使用它是安全的noatime?我知道例如 mutt 使用访问/创建/修改时间,以及其他任何可能使用的时间,无论在哪个目录中。

遵循大量指南,我根据不同的用例对我的目录进行了分区,但我真的不知道,将 noatime 放在哪里是安全的?

目录/标志:

/               defaults
   (/bin
    /sbin
    /lib*
    /etc
    /root
    /dev ...)

/boot           defaults
/boot/EFI       defaults

/usr            defaults,ro,nodev
                    NOTE: dpkg needs rw
/usr/share      defaults,ro,nodev,nosuid

/var            defaults,nodev
                    NOTE: /var/lib/dpkg/info -> exec
/var/tmp        defaults,nodev,nosuid,noexec
/var/log        defaults,nodev,nosuid,noexec

/opt            defaults,nodev

/tmp            defaults,nodev,nosuid,noexec
                    NOTE: some installer may need exec

/home           defaults,nodev,nosuid
Run Code Online (Sandbox Code Playgroud)

Xen*_*050 6

AFAIK 确实是非常罕见的依赖时间的程序,并且noatime几乎在任何地方使用都是安全的。

服务器故障问题关闭文件系统上的 atime表示它基本上只是 mutt(使用 mbox 邮箱时)并且无论如何都有一个简单的解决方法,或者非常偶然的程序,如 tmpwatch 或临时文件清理程序:

mutt 是一个电子邮件客户端,它使用文件访问时间来监视到达 mbox 格式邮箱的新邮件。显然,这个问题并不严重,而且很容易解决。

除此之外,很难找到在 noatime 上中断的事情的例子。我在所有文件系统上运行了许多带有 noatime 的 Linux 服务器,我不记得曾经见过任何可归因于 noatime 的问题。

并且使用noatime可以提高性能,可能比旧的严格时间提高很多(但仍然应该比今天的标准有所帮助relatime,将每次写入保存在闪存/SSD上是好的):

Linux:用 relatime 替换 atime

Jeremy 于 2007 年 8 月 7 日 - 上午 11:26 提交

在最近的 lkml 线程中,Linus Torvalds 参与了关于使用 noatime 选项挂载文件系统以获得更好性能的讨论,“'noatime,data=writeback' 很可能是 相当很明显(对不同的负载有不同的影响),但实际上几乎没有人以这种方式运行。”他指出,他在编写 git 时设置了 O_NOATIME,“对于没有 'noatime' 的情况来说,这绝对节省了大量时间安装选项。在某些负载下肯定会超过您估计的 10%。”然后讨论着眼于使用 relatime 挂载选项来改善这种情况,“如果前一个 atime 比 mtime 或 ctime 旧,则相对 atime 仅更新 atime。像 noatime 一样,但对于像 mutt 这样的应用程序很有用,它们需要知道自上次修改以来文件何时被读取过。” Ingo Molnar 强调了解决这个性能问题的重要性,“我怎么强调都不过分在实践中。Atime 更新是迄今为止 Linux 最大的 IO 性能缺陷。与过去 10 年的所有页面缓存加速相比,摆脱 atime 更新将为我们提供更多的日常 Linux 性能,结合起来。”他提交了一些补丁来改善relatime,并注意到atime:

“这也可能是有史以来最愚蠢的 Unix 设计理念。Unix 真的很好,做得很好,但想想看:'对于从磁盘读取的每个文件,让我们做一个......写入磁盘!而且,对于每个已经缓存并从缓存中读取的文件......写入磁盘!'”

serverfault 上有一个答案(使用 noatime 挂载文件系统的缺点?)说在过去 10 年左右的时间里,使用 noatime 挂载显然没有问题:

如果文件在特定时间段内未被访问,则存在将文件移至辅助存储的应用程序。显然,他们需要时间。

除此之外,我没有看到这个(不再)有多大用处,尤其是现在文件管理器倾向于打开文件以生成预览,因此在浏览目录时修改时间。

这些天我总是用 noatime 挂载。

于 09 年 7 月 29 日在 11:09 回答了
Sven?
86.4k