我在包含大约 7 TB 数据的目录中运行了以下命令。
find . -type f -cmin +30 | wc -l
大约需要 10 分钟才能显示输出。
十分钟后,我再次运行了相同的命令,这次速度更快了。我的问题是 Linux 是否将结果存储在了某个地方?有人能解释一下为什么第二次没有花这么长时间吗?
答案1
find 命令的结果没有被保存。发生的情况是这样的:
当 Linux 从硬盘读取数据时,它会将这些信息缓存在 RAM 中,只要有空闲空间即可。第一次运行寻找命令耗时十分钟,因为系统必须直接从磁盘读取数据,这比从缓存读取要慢得多。第二次它能够从 RAM 中获取大量所需数据,因此返回速度更快。
答案2
是的,Linux 在后台有一个文件系统缓存,它会自动使用所有可用空间(如果有更好的内存用途,它会回收它)。