禁用内存缓存-真正的原因

禁用内存缓存-真正的原因

好的,在你将我的帖子标记为重复之前,我想说,我知道这个非常好的答案:如何清理或禁用内存缓存?
但我的情况并非如此。

我正在对内存应用程序和使用磁盘的应用程序进行一些性能测试。因此,我希望保证每次应用程序尝试从磁盘获取某些内容时,系统确实会从磁盘而不是从内存缓存中获取。(我希望有性能因素,当应用程序必须从磁盘读取时,它会运行得更差。)
我知道,我可以通过命令清理缓存sync && echo 3 > /proc/sys/vm/drop_caches,但每分钟通过 cron 清理对我来说太慢了,因为缓存很快就会再次被填满。

所以我有个问题:你真的不能禁用这个功能吗?或者可以绕过它?它确实会弄乱我的测试结果。

PS:我使用的是Ubuntu 12.04 64位。

答案1

您可以使用 hdparm 禁用它,打开文本编辑器并编辑 /etc/hdparm.conf,然后取消注释“write_cache = off”行。重新启动,要检查它是否有效,请键入 sudo hdparm -i /dev/sdX(使用您的驱动器字母),然后检查 AdvancedPM 行,最后显示写入缓存的状态。

编辑:您可以检查 hdparm -i /dev/sdX 以查看更改之前的 write_cache 选项情况。

EDIT2:-o sync在安装分区时使用以避免写入缓存,我不知道读取部分。

相关内容