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)
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