评估当前运营的绩效

    在本页面

    以下各节介绍了用于评估操作性能的技术。

    使用数据库分析器来计算针对数据库的操作

    MongoDB提供了一个数据库分析器,它显示针对数据库的每个操作的性能特征。使用分析器定位任何运行缓慢的查询或写操作。例如,您可以使用此信息来确定要创建什么索引。

    从MongoDB 4.2开始,用于读写操作的profiler条目和诊断日志消息(即mongod/mongos日志消息)包括:

    从版本4.2(也可以从4.0.6开始使用)开始,复制集的次要成员现在会记录花费超过慢操作阈值的oplog条目。这些缓慢的oplog消息被记录在REPL组件下的诊断日志中,并应用文本op: 取<num>ms。这些较慢的oplog条目仅依赖于较慢的操作阈值。它们不依赖于日志级别(系统或组件级别)、分析级别或较慢的操作采样率。分析器不会捕获很慢的oplog条目。

    有关更多信息,请参见Database Profiler

    使用db.currentOp()到评估mongod业务

    db.currentOp()方法报告mongod实例上正在运行的当前操作。

    使用explain来评估查询性能

    cursor.explain()db.collection.explain() 方法返回关于查询执行的信息,如MongoDB的选择以满足查询和执行统计数据的指标。您可以在queryPlanner 模式,executionStats模式或 allPlansExecution模式下运行这些方法,以控制返回的信息量。

    https://docs.mongodb.com/manual/reference/program/mongo/bin.mongo)

    例子

    要在名为records的集合中查询与表达式{a: 1}匹配的文档时使用cursor.explain(),在mongo shell中使用类似于下面的操作:

    1. db.records.find( { a: 1 } ).explain("executionStats")

    从MongoDB 4.2开始,explain输出包括:

    欲了解更多信息,请参阅解释结果cursor.explain()db.collection.explain(),和 分析查询性能

    译者:杨帅

    校对:杨帅

    参见

    原文 - Evaluate Performance of Current Operations