Las siguientes secciones describen técnicas para evaluar el rendimiento operativo.
Usa el perfilador de base de datos para evaluar las operaciones contra la base de datos
MongoDB proporciona un Generador de perfiles de base de datos que muestra las características de rendimiento de cada operación en la base de datos. Úselo para localizar consultas u operaciones de escritura lentas. Puede usar esta información, por ejemplo, para determinar qué índices crear.
Las entradas del perfilador y los mensajes de registro de diagnóstico (es decir, mensajes de registro de MongoD/mongos) para operaciones de lectura/escritura incluyen:
queryHashpara ayudar a identificar consultas lentas con la misma forma del query.planCacheKeypara proporcionar más perspectiva sobre la caché del plan del query para queries lentos.
Los miembros secundarios de un set de réplicas ahora registran entradas de oplog que tardan más que el umbral de una operación lenta en aplicarse. Estos mensajes lentos del oplog:
Se registran para los secundarios en el
diagnostic log.Se documentan en el registro bajo el componente
REPLcon el textoapplied op: <oplog entry> took <num>ms.No depende de los niveles de registro (ya sea a nivel del sistema o del componente)
No depende del nivel de perfil.
Se ven afectados por
slowOpSampleRate.
El perfilador no captura entradas lentas del oplog.
Para obtener más información, consulte Generador de perfiles de base de datos.
Utiliza db.currentOp() para Evaluar Operaciones de mongod
El método db.currentOp() informa sobre las operaciones actuales que se ejecutan en una instancia de mongod.
Use explain to Evaluate Query Performance
Los métodos cursor.explain() y db.collection.explain() devuelven información sobre la ejecución de una query, como el índice que MongoDB seleccionó para cumplir con la query y las estadísticas de ejecución. Puedes ejecutar los métodos en modo queryPlanner, en modo executionStats o en modo allPlansExecution para controlar la cantidad de información devuelta.
Ejemplo
Para usar cursor.explain() en una query de documentos que coincidan con la expresión { a: 1 }, en la colección denominada records, utilizá una operación similar a la siguiente en mongosh:
db.records.find( { a: 1 } ).explain("executionStats")
A partir de MongoDB 4.2, la salida de explicación incluye:
queryHashpara ayudar a identificar consultas lentas con la misma forma del query.planCacheKeypara proporcionar más perspectiva sobre la caché del plan del query para queries lentas.
Para obtener más información, consulta Explicación de resultados, cursor.explain(), db.collection.explain() y Analizar el rendimiento de query.