linux 磁盘缓存会影响 stat 报告的访问时间吗?

linux 磁盘缓存会影响 stat 报告的访问时间吗?

在 Ubuntu 12.04 上我做了以下操作

  1. 统计一个文件
  2. 猫相同的文件
  3. 再次统计文件
  4. 5 分钟后再次 cat 该文件
  5. 统计文件

3. 中报告的访问时间反映了 2. 运行的时间点。但是,5. 处报告的访问时间与 2. 一致,而不是 4. 这是因为 Linux 在缓存之外提供文件并避免在第二个实例中进行磁盘访问吗?还有一种方法可以检索当前驻留在磁盘缓存中的文件列表?

答案1

缓存是透明的。它不会影响文件的元数据。文件的访问日期显示文件被读取的时间,而不管读取文件是否导致从磁盘读取。

默认情况下,Linux 不更新文件访问时间。 sine 内核 2.6.30 的默认挂载选项是relatime,这会牺牲文件访问时间的实用性来换取少量的性能提升。看来您的文件系统是使用该relatime选项安装的,因此第二次读取文件时没有更新其 atime。

答案2

元数据缓存通常与文件缓存不同。您可以使用 fincore 实用程序获取缓存文件的列表,请参阅:http://code.google.com/p/linux-ftools/

相关内容