在linux中如何完全清除filesytem的缓存?

分享于 

1分钟阅读

电脑

  繁體 雙語

问题:

在性能测试中,我希望绕过linux系统( 包括页面缓存/inode缓存等) 缓存的影响。

我已经尝试了O_DIRECT标志,但结果表明直接 I/O 仍然是一些缓存效果的最佳选择。

是否有彻底的方法来关闭系统缓存的效果?


回答 1:

( 它实际上会下降,先运行 sync ),然后

免费 pagecache:


echo 1>/proc/sys/vm/drop_caches



自由dentry和 inode:


echo 2>/proc/sys/vm/drop_caches



自由 pagecache,dentry和 inode:


echo 3>/proc/sys/vm/drop_caches



然后你可以从一个干净的缓存开始,但是当然缓存仍然可以工作。


回答 2:

不,你不能绕过高速缓存。 但是,你可以强制文件系统同步( 也就是说,清除缓存并将数据写入磁盘) 与其他系统调用 fsync(3)。

你好,CK



文件  files  CAC  cache  清除  
相关文章