如何在没有干扰驱动程序的情况下对mongo引擎本身进行基准测试?

时间:2014-01-19 09:00:48

标签: mongodb

我正在优化一堆服务器机器来托管MongoDB。从Mongo引擎的角度来看,我需要了解优化是否有效。

为了减少噪音,我最好不要使用Mongo驱动程序来消除干扰。

如何进行这样的基准测试?

JS benchmarking harness”对这种情况有用吗?

1 个答案:

答案 0 :(得分:1)

对于常规服务器优化,最佳起点是MongoDB手册中的Production Notes部分。仔细阅读将有助于避免一些常见错误,例如不在Linux服务器上增加ulimit settings或不disabling NUMA

还有一个关于Security的非常详细的部分,包括访问控制,网络暴露,防火墙和其他相关配置。

  

为了减少噪音,我最好不要使用Mongo驱动程序来消除干扰。

你无法避免使用驱动程序;甚至mongo shell实际上也是一个通过C ++驱动程序发送命令的JavaScript shell。鉴于驱动程序实现可能存在一些差异(例如:连接池,超时和默认值的方法),我建议选择您希望在您的环境中最常用的驱动程序,并将其用作相对的参考点服务器上的性能发生了变化。

  

“JS基准测试工具”对这种情况有用吗?

如您所链接的MongoDB文档页面所述:

This benchRun command is designed as a QA baseline perf measurement tool, not designed
to be a "benchmark".

您的调优是否成功的一个很好的指示是针对您的应用程序中的代表性工作负载运行。即使您遵循服务器配置的最佳实践,应用程序仍然可能会遇到设计问题(模式选择不当,服务器端JavaScript过度使用,缺少索引等)的性能问题。

我建议设置一个支持MongoDB的监控服务,并确保捕获合理数量的指标历史记录,以便比较调整参数之前和之后类似​​工作负载的结果。一个常见的选择是来自MongoDB,Inc。的免费MMS Monitoring service。还有许多其他管理员和监控文档中Admin UIs部分列出的服务/工具。