清除虚拟机的缓存

时间:2013-09-22 20:37:03

标签: linux caching virtual-machine benchmarking ram

我目前正在运行Ubuntu 12.04的虚拟机上进行一些数据库基准测试。我注意到第二次执行查询时运行得更快。这很可能是由于操作系统缓存只是将所有数据保存在主内存中。为了防止缓存搞砸我的测量结果,我希望在后续运行之间清除它。

我在google上找到了以下命令来实现这一目标:

sync;echo 3 > /proc/sys/vm/drop_caches

sysctl -w vm.drop_caches=3

即使我以root用户身份登录,所有权限都会在权限中被拒绝。似乎无法从来宾系统中清除系统的缓存。我想这是因为它使用了主机缓存。由于我无法访问主机,因此我必须找到解决方法。目前我有两个想法。

首先想法是在运行之间重新启动计算机,因为这会清除缓存。因为我想执行几十次运行,我真的需要自动执行此操作。所以我可以将程序放入自动启动,让它执行查询并重新启动,并在下次启动时继续下一个查询。感觉就像写病毒一样。

第二个想法是用其他数据充斥内存。因为我的机器有相当多的RAM,所以我会生成一些大型的随机数据文件,只需将其读入/ dev / null。

所以最后我的问题是,有没有人更好的想法清除缓存,或者可能一起避免使用缓存?或者对于如何轻松实现我的两个想法之一有任何建议吗?

非常感谢您提前, 安蒂戈

0 个答案:

没有答案