使用 MonetDB 测试和比较查询性能

Testing and comparing query performance with MonetDB

我正在尝试 运行 一些查询时间测试,想知道是否有办法关闭缓存以便每次都从磁盘而不是内存读取数据?

MonetDB 使用内存映射文件。这些文件的内容由 OS 缓存在页面缓存中,在 Linux 中将使用任何空闲内存。我为获得公平所做的事情 'cold' 运行s(强制从 dist 读取数据} 是

  1. 停止数据库
  2. 清除文件系统缓存。在 Linux、运行 上执行以下命令:sudo bash -c "echo 1 > /proc/sys/vm/drop_caches"(有关详细信息,请参阅 Kernel doc
  3. 再次启动数据库并运行你的查询

一般来说,性能结果的波动会比数据在内存中时更大,所以我建议您重复几次以获得一致的读数。

有一个 benchmark script (ehannes.sh) 可以为您自动完成大部分流程。