![noatime 在哪里可以安全使用?](https://linux22.com/image/1011811/noatime%20%E5%9C%A8%E5%93%AA%E9%87%8C%E5%8F%AF%E4%BB%A5%E5%AE%89%E5%85%A8%E4%BD%BF%E7%94%A8%EF%BC%9F.png)
我正在尝试优化我的新 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
答案1
据我所知,它确实是非常罕见的依赖于 atime 的程序,并且noatime
几乎在任何地方使用都是安全的。
serverfault 问题关闭文件系统上的 atime说它基本上只是 mutt(当使用 mbox 邮箱时)并且有一个简单的解决方法,或者偶尔使用像 tmpwatch 或临时文件清理器这样的程序:
mutt 是一款电子邮件客户端,它使用文件访问时间来监控 mbox 格式邮箱中收到的新邮件。显然,这个问题并不严重,而且很容易解决。
除此之外,很难找到 noatime 导致的问题示例。我在所有文件系统上运行了许多带有 noatime 的 Linux 服务器,但我不记得曾经见过任何与 noatime 有关的问题。
并且使用noatime
可以提高性能,可能比旧的 strictatime 提高很多(但仍然应该比今天的标准有一点帮助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 仅在前一个 atime 比 mtime 或 ctime 更旧时才更新 atime。就像 noatime 一样,但对于像 mutt 这样需要知道文件自上次修改以来何时被读取的应用程序很有用。” Ingo Molnar 强调了修复这个性能问题的重要性,“我不能过分强调它在实践中的重要性。Atime 更新是 Linux 目前最大的 IO 性能缺陷。摆脱 atime 更新将为我们的日常 Linux 性能提供比过去 10 年所有页面缓存加速更高的性能,合并”他提交了一些补丁来改进 relatime,并指出了 atime:
“这也许是有史以来最愚蠢的 Unix 设计理念。Unix 确实很棒,做得很好,但请想一想:‘对于从磁盘读取的每个文件,让我们执行一次...写入磁盘!并且,对于已经缓存并从缓存中读取的每个文件...执行一次写入磁盘!’”
serverfault 上有一个答案(使用 noatime 挂载文件系统的缺点?) 说在过去的 10 年左右的时间里,使用 noatime 安装显然没有问题:
有些应用程序会在文件在一段时间内未被访问时将其移至辅助存储。显然,它们需要 atime。
除此之外,我不再认为它有多大用处,尤其是现在的文件管理器倾向于打开文件来生成预览,因此只需在浏览目录时修改访问时间。
这些天我总是和 noatime 一起骑车。
回答于 2009 年 7 月 29 日 11:09
Sven♦
86.4k