在 MongoDB 中清除缓存以进行性能测试?

Clearing cache for performance testing in MongoDB?

我知道在关系数据库中测试查询性能时,您通常会在 运行 查询之前清除缓存,以真正了解第一次查询数据时的性能。 MongoDB中有类似的东西吗?

我找到了一些 query plan cache clearing stuff,但没有任何东西可以清除缓存数据。 MongoDB里有这种东西吗?如果是这样,有人可以指点我一些文档吗?

此解决方案假设您使用的是类 Unix 系统。

我没有做过很多 MongoDB 的 DBA,但我相信 this video 包含清除缓存数据的答案。

视频的相关部分出现在 4:57 in the video 左右,命令是:

sudo echo 1 > /proc/sys/vm/drop_caches

正如视频中所解释的那样,在大多数情况下使用 1 应该就足够了,但如果您想绝对确定,可以使用 3。如果你(比如 MongoDB class 的讲师)发现那个命令是 "inelegant",你可以使用:

sudo sysctl -w vm.drop_caches=1

该讲座系列中还有其他视频 introduce and demonstrate "pre-heating data" 在让您的应用程序访问机器之前将工作集放入内存,这样用户就不会体验到从磁盘读取的性能不佳。