Avaliar o desempenho das operações atuais
Nesta página
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:
queryHash
para ajudar a identificar queries lentas com a mesma forma de query.planCacheKey
para 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
REPL
com 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:
queryHash
para ajudar a identificar queries lentas com a mesma forma de query.planCacheKey
para 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.