Dan*_*ola 2 linux filesystems cache
我正在测试我对某些代码所做的某些更改是否有效。为此,我需要知道文件系统缓存通常是如何工作的。我假设我们得到的是默认值,因为我们可能没有对此进行任何有趣的调整。
本质上,如果我从我的代码中询问“这个文件是否存在?”,答案会在“x”毫秒后返回。如果我后来又问了几分钟,答案回来了,多快,所以我猜有一些缓存对那里发生的。
如果我想再次测试并刷新缓存,我应该等待多长时间,所以它会再次花费“很长时间”?(我想看看我是否修复了我的网络应用程序中的性能问题,但我只能知道它是否已修复,如果有关文件存在的信息未缓存,因为如果缓存,它确实运行得很快)
我知道这不是最有说服力的问题,答案可能是“视情况而定”,我要求的是理智的默认。换句话说,如果我在 3 小时或 6 小时后再次测试,我可以指望它不会被缓存吗?
据我所知......这是一个 Ubuntu 服务器,内核版本:3.9.3-x86-linode52,Ubuntu 版本:Ubuntu 12.04.3 LTS,托管在 Linode 上。文件系统是ext3
谢谢!
丹尼尔
您可能遇到的是inode caching,因为exists
只需查看 inode 即可满足查询。文件缓存有点不同。令人高兴的是,Linux并为您提供一种方法,通过该命令来删除缓存drop_caches暴露机制/proc/sys/vm/dropcaches
。
To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)