Monitore e melhore queries lentas
Nesta página
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
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.
Acesso necessário
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 Owner
ao projeto. Os usuários com acesso Organization Owner
devem se adicionar ao projeto como Project Owner
.
Configurar o limite de query lenta
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.
Desative o limite de operação lenta gerenciado pelo Atlas
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.
Nas Configurações do projeto para o projeto atual, alterne Managed Slow Operations para Off.
Habilite o limite de operação lenta gerenciado pelo Atlas
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.
Nas Configurações do projeto do projeto atual, alterne Managed Slow Operations para On.
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.
Acesse o Performance Advisor
Ver collections com queries lentas
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.
Visualizar registros de queries lentas
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.
Ver índices sugeridos
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.
Para acessar o Performance Advisor usando a IU do Atlas:
No Atlas, váGo para a Clusters página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
Visualize recomendações.
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.
No Atlas, váGo para a Clusters página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
Sugestões de Índices
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.
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. |
Average 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
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.
Quantidade de registros
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.
Coleção de Séries Temporais
O Performance Advisor não fornece sugestões de desempenho para coleções de séries temporais.
Feedback do Usuário
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.
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 e Limitações
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.
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.
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
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.
Na caixa de diálogo Confirm Operation, confirme seu índice.
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