Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ /

Monitore e melhore queries lentas

Nesta página

  • Motivos comuns para queries lentas
  • Acesso necessário
  • Configurar o limite de query lenta
  • Considerações sobre o índice
  • Acesse o Performance Advisor
  • Sugestões de Índices
  • Criar índices sugeridos

Disponível somente em clusters M10+ e instâncias sem servidor

O Performance Advisor monitora as queries que o MongoDB considera lentas e sugere novos índices para melhorar o desempenho das queries. O limite para queries lentas varia com base no tempo médio de operações no seu cluster para fornecer recomendações pertinentes ao seu volume de trabalho.

Os índices recomendados são acompanhados de consultas 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 seus clusters do Atlas.

Você também pode monitorar a latência da consulta no nível da coleção com o NamespaceInsights e o desempenho da consulta com o Profiler de query.

Observação

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.

Para visualizar coleções com consultas lentas e ver índices sugeridos, você deve ter acesso Project Read Only ou superior ao projeto.

Para visualizar os valores de campo em uma query de amostra no Performance Advisor, você deve ter Project Observability Viewer acesso , Project Data Access Read Only, Project Data Access Read/Write ou Project Data Access Admin ao projeto.

Para ativar ou desativar o limite de operação lenta gerenciada pelo Atlas, você deve ter acesso Project Ownerao projeto. Os usuários com acesso Organization Owner devem se adicionar ao projeto como Project Owner.

Por padrão, o Atlas ajusta dinamicamente seu limite de consulta lento baseado no tempo de execução das operações em seu agrupamento. Contudo Você pode desativar esse recurso e, em vez disso, usar uma consulta lenta fixa limite de 100 milissegundos. Você pode desativar o gerenciado pelo Atlas limite de operação lenta com o Atlas CLI, API de administração do Atlas ou interface do usuário do Atlas.

Observação

Os clusters do Atlas com o Atlas Search ativado não são compatíveis com o limite de operação de query lenta gerenciada pelo Atlas.

Para clusters do M0, M2, M5 e instâncias sem servidor, o Atlas desabilita o limite de operação de consulta lenta gerenciada pelo Atlas por padrão e você não pode habilitá-lo.

Importante

Por padrão, o Atlas ajusta dinamicamente seu limite de query lenta com base no tempo de execução das operações em seu cluster. Se você desabilitar o limite de query lenta gerenciado pelo Atlas, ele não se ajustará mais dinamicamente. O MongoDB padroniza o limite fixo de query lenta para 100 milissegundos. Não recomendamos que você defina um limite fixo de query lenta inferior a 100 milissegundos.

Para desativar o limite de operação lento gerenciado por laser e usar um limite fixo de 100 milissegundos:

Para desabilitar o limite de operação lenta gerenciado pelo Atlas para seu projeto usando o Atlas CLI, execute o seguinte comando:

atlas performanceAdvisor slowOperationThreshold disable [options]

Para saber mais sobre a sintaxe e os parâmetros do comando, consulte a documentação do Atlas CLI para atlas performanceAdvisor slowOperationThreshold disable.

Dica

Veja: links relacionados

Nas Configurações do projeto para o projeto atual, alterne Managed Slow Operations para Off.

O Atlas ativa o limite de operação lenta gerenciado pelo Atlas por padrão. Para reativar o limite de operação lenta gerenciado pelo Atlas que você desativou anteriormente:

Para habilitar o limite de operação lenta gerenciado pelo Atlas para seu projeto usando o Atlas CLI, execute o seguinte comando:

atlas performanceAdvisor slowOperationThreshold enable [options]

Para saber mais sobre a sintaxe e os parâmetros do comando, consulte a documentação da CLI do Atlas para atlas performanceAdvisor slowOperationThreshold enable.

Dica

Veja: links relacionados

Nas Configurações do projeto do projeto atual, alterne Managed Slow Operations para On.

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.

Para retornar até 20 espaços de nomes no formato <database>.<collection> para coleções com consultas lentas utilizando a Atlas CLI, execute o seguinte comando:

atlas performanceAdvisor namespaces list [options]

Para saber mais sobre a sintaxe do comando e os parâmetros, consulte a documentação do Atlas CLI para atlas performanceAdvisor namespaces list.

Dica

Veja: links relacionados

Para retornar itens de linha de registro de query para queries lentas que o Performance Advisor e o Analisador de query identificam utilizando o Atlas CLI, execute o seguinte comando:

atlas performanceAdvisor slowQueryLogs list [options]

Para saber mais sobre a sintaxe de comando e os parâmetros, consulte a documentação da Atlas CLI sobre a atlas performanceAdvisor slowQueryLogs list.

Dica

Veja: links relacionados

Para retornar índices sugeridos para collections com queries lentas utilizando o Atlas CLI, execute o seguinte comando:

atlas performanceAdvisor suggestedIndexes list [options]

Para saber mais sobre a sintaxe do comando e os parâmetros, consulte a documentação do Atlas CLI para atlas performanceAdvisor suggestedIndexes list.

Dica

Veja: links relacionados

Para acessar o Performance Advisor usando a IU do Atlas:

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.

  3. Se ainda não estiver exibido, clique em Clusters na barra lateral.

    A página Clusters é exibida.

2

Se o conjunto de réplicas fizer parte de um cluster fragmentado, primeiro clique no cluster fragmentado que contém o conjunto de réplicas.

3
4

O Performance Advisor busca recomendações de índice das últimas 24 horas.

  • Se o Performance Advisor tiver recomendações, clique no botão View Recommendations na seção Create Indexes.

  • Se o Performance Advisor não tiver recomendações, para procurar recomendações de índice até os últimos 5 dias, clique em Explore Recommendations na seção Create Indexes.

O Performance Advisor classifica os índices de acordo com o seu Impact, que é baseado no total de bytes desperdiçados lidos pelas operações associadas. Para saber mais sobre classificação de índice, consulte Avaliação de classificação de índice.

5

Filtre os resultados por qualquer uma das seguintes opções:

  • Filter by shards and hosts

  • Filter by namespace

  • Filter by time range

  • Filter by date and time

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.

  3. Se ainda não estiver exibido, clique em Clusters na barra lateral.

    A página Clusters é exibida.

2
3

O Performance Advisor classifica os índices de acordo com o seu Impact, que é baseado no total de bytes desperdiçados lidos pelas operações associadas. 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.

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.

Average Object Size

Tamanho Médio do Objeto.

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.

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.

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.

O Performance Advisor não pode sugerir índices para bancos de dados MongoDB configurados para usar o formato do carimbo de data/hora do ctime. Como uma solução alternativa, configure o formato do carimbo de data/hora para tais bancos de dados para iso8601-utc ou iso8601-local. Para saber mais sobre formatos de carimbo de data/hora, consulte mongod --timeStampFormat.

Se um cluster experimentar um pico de atividade e gerar uma quantidade extremamente grande de mensagens de log, o Atlas poderá parar de coletar e armazenar novos registros por um período de tempo.

Observação

Os limites da taxa de análise de log se aplicam somente à IU do Performance Advisor, à IU do Query Insights, à IU do Access Tracking e à IU do Atlas Search Query Analytics. Os arquivos de log que podem ser baixados estão sempre completos.

O Performance Advisor não fornece sugestões de desempenho para coleções de séries temporais.

O Performance Advisor inclui um botão de feedback do usuário para sugestões de índice. O Atlas oculta esse botão para instâncias sem servidor.

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.

  • Não é possível criar índices por meio do Performance Advisor se o Data Explorer estiver desativado em seu projeto. Você ainda pode visualizar as recomendações do Performance Advisor, mas precisa criar esses índices a partir de mongosh.

  • Você só pode criar um índice por vez por meio do Performance Advisor. Se quiser criar mais simultaneamente, você pode fazer isso usando a UI do Atlas, um driver ou o shell

  • O Atlas sempre cria índices para clusters inteiros. Se você criar um índice enquanto visualiza o Performance Advisor de um único fragmento em um cluster fragmentado, o Atlas criará esse índice para todo o cluster fragmentado.

Para criar um índice sugerido:

1

O Performance Advisor abre a caixa de diálogo Create Index e preenche previamente o Fields com base no índice selecionado.

2
{ <option1>: <value1>, ... }

Exemplo

O seguinte documento de opções especifica a opção unique e o name para o índice:

{ unique: true, name: "myUniqueIndex" }
3

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.

4

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:

Observação

a UI do Atlas não suporta a criação de índices com uma compilação contínua para M0 clusters livres e M2/M5 clusters compartilhados. Você não pode construir índices com uma compilação móvel para instâncias sem servidor.

Para volumes de trabalho que não toleram a diminuição do desempenho devido às compilações do índice, considere a criação de índices de forma contínua.

Para manter a disponibilidade do cluster:

  • O Atlas remove um nó do cluster de cada vez, começando com um secundário.

  • Mais de um nó pode descer de cada vez, mas o Atlas sempre mantém a maioria dos nós online.

O Atlas 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 Atlas cancela a compilação e remove o índice de todos os nós nos quais foi criado com êxito.

No caso de um cancelamento contínuo da compilação do índice, o Atlas gera um evento de feed de atividades 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 do feed de atividades

Para saber mais sobre a reconstrução de índices, consulte Construir índices em conjuntos de réplicas.

Observação

Unique opções de índice são incompatíveis com a criação de índices de forma contínua. Se você especificar unique no painel Options, o Atlas rejeitará sua configuração com uma mensagem de erro.

5
6

Importante

Quando a construção de um índice é concluída, o Atlas gera uma lista de atividades de evento 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

Voltar

Analisar queries lentas