基准的考量

通用基准测试可能会误导和歪曲技术,以及该技术在给定应用程序中的表现如何。 相反,MongoDB建议用户使用数据,查询,硬件以及代表其预期应用程序的系统其他方面对应用程序进行建模和基准测试。 以下注意事项将帮助您开发对您的应用程序有意义的基准。

在应用程序上对基准进行建模 您在基准测试中测试的查询,数据,系统配置和性能目标应反映生产系统的目标。 不能反映您的生产系统的测试假设可能会产生误导性的结果。

在加载之前创建块,或使用基于哈希的分片 如果范围查询是基准测试的一部分,请使用基于范围的分片并在加载之前创建块。 如果不进行预拆分,则可以将数据加载到分片中,然后随着加载的进行将数据移动到其他分片中。 通过预拆分数据,文档将并行加载到适当的分片中。 如果基准不包括范围查询,则可以使用基于散列的分片以确保写入的均匀分布。

禁用平衡器进行批量加载 防止平衡器在大负载期间不必要地重新平衡,以提高性能。

启动系统几分钟 在生产MongoDB系统中,工作集应适合RAM,并且所有读取和写入操作都将针对RAM执行。 MongoDB必须首先将工作集分页到RAM中,因此在运行测试之前,请对系统进行几分钟的代表性查询准备,以准确了解MongoDB在生产中的性能。

监视所有内容以查找瓶颈 了解基准的瓶颈很重要。取决于许多因素,整个系统的任何组件都可能成为限制因素。 MongoDB可使用多种流行工具-手册中列出了许多工具。

用于监视MongoDB的最全面的工具是Ops Manager,它是MongoDB Enterprise Advanced的一部分。 Ops Manager具有图表,自定义仪表板和自动警报功能,可跟踪100多个关键数据库和系统指标,包括操作计数器,内存和CPU利用率,复制状态,打开的连接,队列以及任何节点状态。这些指标会安全地报告给Ops Manager,并在浏览器中进行处理,汇总,警告和可视化,从而使管理员可以轻松地实时确定MongoDB的运行状况。 MonsDB在云中托管的基于SaaS的云管理器中也提供了Ops Manager的优势。在MongoDB Enterprise Advanced上运行的组织可以在Ops Manager和Cloud Manager之间进行选择。

除了监视之外,Ops Manager和Cloud Manager还提供自动化部署,升级,在线索引构建,数据到期和跨分片在线备份。

Profiling MongoDB提供了称为数据库探查器的分析功能,该功能记录有关数据库操作的细粒度信息。可以使事件探查器记录所有事件的信息,或者仅记录持续时间超过可配置阈值(默认值为100毫秒)的事件的信息。分析数据存储在有上限的集合中,可以在其中轻松搜索相关事件。查询此集合可能比解析日志文件更容易。识别慢查询时,可以使用MongoDB Ops Manager和Cloud Manager可视化探查器的输出。

Ops Manager和Cloud Manager包括一个可视查询分析器,它为操作团队和DBA提供了一种快速便捷的方式来分析特定查询或查询族。 Visual Query Profiler 显示查询和写入延迟随时间的变化情况-轻松识别具有常见访问模式和特征的较慢查询,以及识别任何延迟尖峰。只需在Ops Manager UI中单击即可激活事件探查器,该探查器然后将合并并显示单个屏幕中每个节点的指标。

Visual Query Profiler将分析数据–推荐其他索引,并可以选择通过自动滚动索引构建将其添加。

Ops Manager还提供性能顾问,该顾问不断突出显示运行缓慢的查询,并提供智能索引建议以提高性能。 然后,使用Ops Manager自动化,管理员可以自动推出建议的索引,而不会导致任何应用程序停机。

MongoDB Compass使索引覆盖率可视化,使您能够确定对哪些特定字段建立索引,它们的类型,大小以及使用这些索引的频率。

使用mongoperf表征您的存储系统 mongoperf是一个免费工具,允许用户模拟直接磁盘I/O和内存映射I/O,并具有线程数量,文档大小和其他因素的可配置选项。 该工具可以帮助您了解系统的磁盘绑定I/O和内存映射I/O可能实现的吞吐量。

Last updated