As seções a seguir descrevem técnicas para avaliar o desempenho operacional.
Use o Profiler do Banco de Dados para Avaliar Operações Contra o Banco de Dados
O MongoDB fornece um analisador de banco deprofiler de banco de dados que mostra as características de desempenho de cada operação em relação ao banco de dados de dados. Use o criador de profiler para localizar quaisquer queries ou operações de gravação que estejam lentas. Você pode usar essas informações, por exemplo, para determinar quais índices criar.
As entradas do analisador e as mensagens de registro de diagnóstico (ou seja, mensagens de registro mongod/mongos) para operações de leitura/gravação incluem:
queryHashpara ajudar a identificar queries lentas com a mesma forma de query.planCacheKeypara fornecer mais informações sobre o cache do plano de consulta para queries lentas.
Os membros secundários de um conjunto de réplicas agora registram entradas de oplog que demoram mais do que o limite de operação lenta para serem aplicadas. Essas mensagens de atraso no oplog:
São registradas para os secundários no
diagnostic log.São registradas sob o componente
REPLcom o textoapplied op: <oplog entry> took <num>ms.Não dependem dos níveis de registro (seja no nível do sistema ou do componente)
Não dependem do nível de perfil.
São afetados por
slowOpSampleRate.
O perfilador não captura entradas de oplog lentas.
Para obter mais informações, consulte Profiler do Banco de Dados.
Usar db.currentOp() para avaliar mongod operações
O método db.currentOp() relata as operações atuais em execução em uma instância mongod.
Use o explain para avaliar o desempenho da query
Os métodos cursor.explain() e db.collection.explain() geram informações sobre a execução de uma query, como o índice que o MongoDB selecionou para preencher as estatísticas de query e execução. Você pode executar os métodos nos modos queryPlanner, executionStats ou allPlansExecution para controlar a quantidade de informações geradas.
Exemplo
Para usar cursor.explain() em uma query de documentos que correspondam à expressão { a: 1 }, na collection chamada records, use uma operação semelhante à seguinte em mongosh:
db.records.find( { a: 1 } ).explain("executionStats")
A partir do MongoDB 4.2, a saída explicativa inclui:
queryHashpara ajudar a identificar queries lentas com a mesma forma de query.planCacheKeypara fornecer mais informações sobre o cache do plano de query para queries lentas.
Para mais informações, consulte Explicar Resultados, cursor.explain(), db.collection.explain() e Analisar Desempenho da Query.