我正在testing我对某些代码所做的一些更改是否有效。 为此,我需要知道文件系统caching如何正常工作。 我假设默认是我们得到的,因为我们可能没有调整任何有趣的事情。
基本上,如果从我的代码中,我问“这个文件是否存在?”,答案回来“x”毫秒。 如果我几分钟后再问,答案会更快,所以我猜这里有一些caching。
如果我想再次testing,需要等待多久,caching刷新,所以它会再花“长”? (我想看看我是否在我的web应用程序中修复了一个性能问题,但是我只能知道,如果关于文件存在的信息没有被caching,那么它是固定的,因为如果是,它运行得很快)
我知道这不是最有说服力的问题,答案可能是“这取决于”,我要求一个理智的默认。 换句话说,如果我在3小时或者6或者其他的时候再次testing,我可以指望它没有被caching吗?
据我所知…这是一个Ubuntu服务器,内核版本:3.9.3-x86-linode52,Ubuntu版本:Ubuntu 12.04.3 LTS,托pipe在Linode上。 文件系统是ext3
谢谢!
丹尼尔
你可能遇到的是inodecaching ,因为exists查询可以通过查看inode来满足。 文件caching有点不同。 令人高兴的是,linux确实为您提供了一种通过/proc/sys/vm/dropcaches公开的drop_caches机制来删除caching的方法。
To free dentries and inodes: echo 2 > /proc/sys/vm/drop_caches