Monitore e melhore queries lentas
Nesta página
- A autenticação OAuth 2.0 para acesso programático ao Cloud Manager está disponível como um recurso de visualização.
- O recurso e a documentação correspondente podem mudar a qualquer momento durante o período de Pré-visualização. Para usar a 2.0 autenticação OAuth, crie uma conta de serviço para usar em suas solicitações para a API pública do Cloud Manager .
O Performance Advisor monitora qualquer operação com um predicado de consulta que MongoDB considera lento e sugere novos índices 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 do seu Cloud Manager cluster.
Você também pode monitorar a latência da query em nível de collection com o Query Insights.
Observação
Para visualizar o Performance Advisor, você deve:
Seja um usuário do Cloud Premium.
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 queries de exemplo, você deve ser um usuário do Cloud Manager com uma ou mais das seguintes roles:
Os usuários sem as funções mencionadas acima não podem ver os valores dos campos.
Habilitar ou desabilitar o consultor de desempenho para um projeto
Importante
Privilégios necessários
Para habilitar Performance Advisor para um projeto, você deve ter a role Project Owner
no projeto.
O Performance Advisor está habilitado por padrão. Para desativar ou ativar o Performance Advisor:
No MongoDB Cloud Manager, váGo para a Project Settings página.
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.
Ao lado do menu Projects, expanda o menu Options e clique em Project Settings.
A página Configurações do projeto é exibida.
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:
No MongoDB Cloud Manager, acesse aGo Deployment página do seu projeto.
Se ainda não estiver exibido, selecione a organização que contém o projeto desejado 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 a página Deployment ainda não estiver exibida, clique em Deployment na barra lateral.
A página Sistema é 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 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.
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 de acordo com 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. |
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.
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 Cloud Manager sempre cria índices no nível superior da implementação. Se você criar um índice enquanto visualiza o Performance Advisor para um único shard em um cluster fragmentado, o Cloud 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 no SERVER-68925, as implementações do Cloud Manager 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 versões do MongoDB :
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.4.0.7703 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 Cloud 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 Cloud 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 Cloud 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 contínuo da compilação do índice, o Cloud 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:
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 Cloud Manager ignora essas opções se você as especificar no painel Options.
Na Confirm Operation caixa de diálogo, confirme seu índice.
Importante
Quando uma compilação de índice é concluída, o Cloud 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:
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