我运行以下命令从文件系统/系统内存中清除缓存文件:
# echo 3 > /proc/sys/vm/drop_caches
我想在脚本的基础上执行此操作,以便当我进行 I/O 测试来比较(比如说)两个不同二进制文件的速度时,我确保文件系统的特定状态(以及正在访问的文件是否被缓存)最大限度地减少速度测试结果中的任何差异。
我的问题是:上述命令需要多长时间才能发挥其魔力?我想知道在运行上述命令后是否需要添加某种程序暂停,以帮助更好地建立我所追求的基线。
清除效果是否立即产生?如果不是,是否可以测量任何延迟?
答案1
此操作只会删除可以立即删除的内容。因此,虽然它是即时的,但不足以满足您的目的。例如,上一个操作修改的任何内容,如果尚未刷新到磁盘,则仍在 RAM 中以供下一个操作使用。
您可能需要运行sync
并等待片刻,以待磁盘活动停止,然后再放弃。