Monitore e melhore queries lentas
Nesta página
O Performance Advisor monitora qualquer operação com um predicado de consulta que oMongoDB considera lento e sugere novosíndices do para melhorar o desempenho da consulta. Para o host e o período de tempo selecionados, o Performance Advisor avalia até as 20,000 queries lentas mais recentes encontradas nos registros.
Os índices recomendados são acompanhados de queries de amostra, agrupadas por forma de query, que foram executadas em uma coleção que se beneficiaria do índice sugerido. O Performance Advisor não afeta negativamente o desempenho dos clusters do Ops Manager.
Observação
Para visualizar o Performance Advisor, você deve:
Execute MongoDB versão 3.2 ou posterior em seu cluster.
Gerencie seu cluster com a automação do agente MongoDB.
Para saber mais sobre o Agente MongoDB, consulte Agente MongoDB.
Para visualizar os valores de campo nas consultas de exemplo, você deve ser um usuário do Ops Manager com uma ou mais dos seguintes roles:
Os usuários sem as funções mencionadas acima não podem ver os valores dos campos.
Motivos comuns para queries lentas
Se uma query for lenta, as razões comuns incluem:
A query não é suportada pelos seus índices atuais.
Alguns documentos em sua coleção têm campos de array grandes que são caros para pesquisar e indexar.
Uma query recupera informações de múltiplas coleções com $lookup.
Considerações sobre o índice
Os índices melhoram o desempenho de leitura, mas um grande número de índices pode afetar negativamente o desempenho de gravação, já que os índices devem ser atualizados durante as gravações. Se sua coleção já tiver vários índices, considere essa compensação de desempenho de leitura e gravação ao decidir se deseja criar novos índices. Examine se uma query para tal coleção pode ser modificada para aproveitar os índices existentes, bem como se uma query ocorre com frequência suficiente para justificar o custo de um novo índice.
O consultor de desempenho pode ajudar a identificar e remover índices desnecessários. Para saber mais, consulte Revisar recomendações de índice de queda.
Acesse o Performance Advisor
Para acessar o Performance Advisor:
O Performance Advisor exibe até 20 formas de consulta em todas as coleções no cluster e índices sugeridos para essas formas. O Performance Advisor classifica os índices de acordo com o seu Impact, o que indica High ou Medium com base nos bytes desperdiçados totais lidos. Para saber mais sobre classificação de índice, consulte Avaliação de classificação de índice.
Observação
Se o log de consulta lento contiver estágios consecutivos $match
no pipeline de agregação, os dois estágios podem se fundir no primeiro estágio $match
e resultar em um único estágio $match
. Como resultado, a forma de consulta no Performance Advisor pode ser diferente da consulta real que você executou.
Sugestões de Índices
O Performance Advisor classifica os índices que ele sugere de acordo com seu Impact, o que indica High ou Medium com base no total de bytes desperdiçados lidos. Para saber mais sobre como o Performance Advisor classifica os índices, consulte Revisar classificação do índice.
Para saber como criar índices que o Performance Advisor sugere, consulte Criar índices sugeridos.
Métricas de índice
Cada índice que o consultor de desempenho sugere contém as seguintes métricas. Estas métricas se aplicam especificamente a queries que seriam melhoradas pelo índice:
Métrica | Descrição |
---|---|
Execution Count | Número de queries executadas por hora que seriam melhoradas. |
Average Execution Time | Tempo médio de execução atual em milésimos de segundo para queries afetadas. |
Average Query Targeting | Número médio de documentos lidos por documento retornado por queries afetadas. Uma pontuação de segmentação de query mais alta indica um maior grau de ineficiência. Para obter mais informações sobre segmentação de queries, consulte Segmentação de queries. |
In Memory Sort | Número atual de queries afetadas por hora que precisavam ser classificadas na memória. |
Average Docs Scanned | Número médio de documentos digitalizados. |
Average Docs Returned | Número médio de documentos devolvidos. |
Avgerage Object Size | Tamanho Médio do Objeto. |
Exemplos de queries
Para cada índice sugerido, o Performance Advisor mostra as formas de query mais comumente executadas que o índice melhoraria. Para cada forma de query, o Performance Advisor exibe as seguintes métricas:
Métrica | Descrição |
---|---|
Execution Count | Número de queries executadas por hora que correspondem à forma de query. |
Average Execution Time | Tempo médio de execução em milissegundos para queries que correspondem à forma de query. |
Average Query Targeting | Número médio de documentos lidos para cada documento retornado por queries correspondentes. Uma pontuação de segmentação de query mais alta indica um maior grau de ineficiência. Para obter mais informações sobre segmentação de queries, consulte Segmentação de queries. |
Average Docs Scanned | Número médio de documentos digitalizados. |
Average Docs Returned | Número médio de documentos devolvidos. |
O Performance Advisor também mostra cada query de amostra executada que corresponde à forma da query, com métricas específicas para essa query.
Segmentação de query
Cada sugestão de índice inclui uma pontuação de Average Query Targeting indicando quantos documentos foram lidos para cada documento retornado para as formas de query correspondentes do índice. Uma pontuação de 1 representa formas de query muito eficientes porque cada documento lido correspondeu à query e foi retornado com os resultados da query. Todos os índices sugeridos representam uma oportunidade para melhorar o desempenho da query.
Filtrar sugestões de índice
Por padrão, o Performance Advisor sugere índices para todos os clusters na implantação. Para mostrar apenas índices sugeridos de uma coleção específica, use a lista suspensa Collection na parte superior do Performance Advisor.
Você também pode ajustar o intervalo de tempo que o Consultor de desempenho leva em consideração ao sugerir índices usando o menu suspenso Time Range na parte superior do Consultor de desempenho.
Limitações das sugestões de índice
Formato de registro de data/hora para índices
O Performance Advisor não pode sugerir índices para bancos de dados MongoDB configurados para usar o formato de registro de data e hora ctime. Como solução alternativa, defina o formato do registro de data e hora para esses bancos de dados como iso8601-utc ou iso8601-local.
Tamanho do registro
O Performance Advisor analisa até 200.000 das linhas de log mais recentes do seu cluster.
Criar índices sugeridos
Você pode criar índices sugeridos pelo Performance Advisor diretamente no Performance Advisor. Ao criar índices, tenha em mente a proporção de leituras e gravações na coleção de destino. Os índices têm um custo de desempenho, mas compensam o custo de queries frequentes em grandes conjuntos de dados. Para saber mais sobre estratégias de indexação, consulte Estratégias de indexação.
Comportamento
Você só pode criar um índice por vez por meio do Performance Advisor. Se quiser criar mais simultaneamente, você pode fazer isso usando o Data Explorer ou o shell
O Ops Manager sempre cria índices no nível superior do sistema. Se você criar um índice enquanto visualiza o Performance Advisor para um único shard em um cluster fragmentado, o Ops Manager criará esse índice para todo o cluster fragmentado.
Procedimento
Para criar um índice sugerido:
(Opcional) Especifique as opções de índice.
{ <option1>: <value1>, ... }
Exemplo
O seguinte documento de opções especifica a opção unique
e o name
para o índice:
{ unique: true, name: "myUniqueIndex" }
(Opcional) Defina as opções de agrupamento .
Use o agrupamento para determinar regras específicas do idioma para comparação de strings, como regras para letras maiúsculas e acentos. O documento de agrupamento contém um campo locale
que indica o código de localidade do ICUe pode conter outros campos para definir o comportamento do agrupamento.
Exemplo
O documento de opção de agrupamento a seguir especifica um valor de localidade de fr
para um agrupamento de idioma francês:
{ "locale": "fr" }
Para revisar a lista de localidades suportadas pelo agrupamento do MongoDB, consulte a lista de idiomas e localidades. Para saber mais sobre as opções de compilação, incluindo quais estão habilitadas por padrão para cada localidade, consulte Agrupamento no manual do MongoDB.
(Opcional) Habilite a criação de índices de forma contínua.
Aviso
Devido a um problema crítico 68925MongoDB Ops Manager no SERVER- , as implementações que usam determinadas versões do MongoDB Agent não devem executar compilações automatizadas de índice contínuo em clusters que executem as seguintes MongoDB versões do :
MongoDB 4.2.19-4.2.22
MongoDB 4.4.13-4.4.16
MongoDB 5.0.6-5.0.11
MongoDB 6.0.0-6.0.1
Você pode continuar a executar construções de índices contínuas manuais com segurança em seus clusters. Para executar construções contínuas e automatizadas de índices com segurança, atualize o MongoDB Agent para 12.0.11.7606 ou posterior ou atualize seus clusters para:
MongoDB 4.2.23 ou posterior
MongoDB 4.4.17 ou posterior
MongoDB 5.0.12 ou posterior
MongoDB 6.0.2 ou posterior
Importante
As compilações de índices contínuos são bem-sucedidas somente quando atendem a determinadas condições. Para garantir que a criação do índice seja bem-sucedida, evite os seguintes padrões de design que geralmente acionam um loop de reinicialização:
A chave de índice excede o limite da chave de índice
O nome do índice já existe
Índice em mais de um campo de array
Índice na coleção que tem o número máximo de índices de texto
Índice de texto na coleção que tem o número máximo de índices de texto
Observação
O Data Explorer não oferece suporte à criação de índices de forma contínua para sistemas autônomos.
A criação de índices de forma contínua reduz o impacto no desempenho da criação de índices em conjuntos de réplicas e clusters fragmentados. Para manter a disponibilidade do cluster, o Ops Manager remove um nó do cluster de cada vez, começando com um secundário.
Depois de criar um índice de forma contínua, se o banco de MongoDB database for executado com um FCV menor que 4.2
, ressincronize o banco de dados head para garantir que o banco de dados head leve em consideração o novo índice.
O Ops Manager cancela automaticamente a criação de índices contínuos que não são bem-sucedidos em todos os nós. Quando uma compilação de índice contínuo é concluída em alguns nós, mas falha em outros, o Ops Manager cancela a compilação e remove o índice de todos os nós nos quais foi criado com êxito.
No caso de um cancelamento de compilação de índice contínuo, o Ops Manager gera um evento de feed de atividade e envia um e-mail de notificação ao proprietário do projeto com as seguintes informações:
Nome do cluster no qual a criação do índice contínuo falhou
Namespace no qual a construção do índice contínuo falhou
Projeto que contém o cluster e o namespace
Organização que contém o projeto
Link para o evento da lista de atividades
Para saber mais sobre a reconstrução de índices, consulte Construir índices em conjuntos de réplicas.
Observação
As seguintes opções de índice são incompatíveis com a criação de índices de forma contínua:
O Ops Manager ignora estas opções se você especificá-las no painel Options.
Na Confirm Operation caixa de diálogo , confirme seu índice.
Importante
Quando uma construção de índice é concluída, o Ops Manager gera um evento de lista de atividades e envia um e-mail de notificação ao proprietário do projeto com as seguintes informações:
Data de conclusão da compilação do índice
Nome do cluster no qual a criação do índice foi concluída
Namespace no qual a criação do índice foi concluída
Projeto contendo o cluster e o namespace
Organização contendo o projeto
Link para o evento do feed de atividades