Observação
Esta página se aplica tanto ao Atlas Infinite quanto ao Atlas Core.
Visão geral
Os aplicativos modernos devem permanecer disponíveis mesmo quando o tráfego aumenta e as queries caras consomem mais recursos do que o esperado. O Intelligent Gerenciamento de carga de trabalho (IWM) é a funcionalidade de disponibilidade gerenciada pelo MongoDB Atlas que mantém seus clusters responsivos e previsíveis, mesmo sob sobrecarga.
A sobrecarga ocorre quando seu cluster recebe mais operações do que seus recursos podem processar. A sobrecarga pode se desenvolver mais rapidamente do que sua infraestrutura pode dimensionar. Mesmo se você habilitar o dimensionamento automático, o Atlas requer tempo para provisionar capacidade adicional. Isso abre uma janela durante a qual um cluster pode se tornar instável se tratar todas as operações da mesma maneira. O IWM fecha essa janela por meio do monitoramento e da reação a picos de carga de trabalho e pressão de recursos em tempo real.
O IWM é o sistema de proteção contra sobrecarga que o Atlas aplica a todos os cluster dedicado que executam o MongoDB 9.0 ou posterior. O IWM inclui as seguintes proteções:
As proteções sempre ativas enfileiram, desaceleram e priorizam as operações para evitar que elas sobrecarreguem o cluster. Essas proteções formam uma linha de base de defesa contra sobrecarga. Para aprender mais, consulte Proteções sempre ativas.
Load Shedding é uma proteção opcional que rejeita operações de banco de dados recebidas em resposta a uma sobrecarga sustentada. Para aprender mais, consulte Load Shedding.
O Atlas aplica um subconjunto dessas proteções a cada cluster, com base na tier, topologia, versão do MongoDB e configuração de Load Shedding do cluster. Para aprender mais, consulte Requisitos de Cluster e Versão.
Proteções Sempre Ativas
As proteções sempre ativas são o conjunto básico de proteções IWM que o Atlas aplica para absorver a sobrecarga e manter a disponibilidade. Essas proteções executam o tempo todo, mesmo quando o Load Shedding está desativado, e você não pode desativá-las. Para aprender quais dessas proteções se aplicam ao seu cluster, consulte Requisitos de cluster e versão.
Enfileiramento de entrada: o Atlas executa um limitador de taxa de solicitação de entrada em cada processo
mongodem seu cluster, que determina a rapidez com que cada processo admite operações para execução. Quando um pico de tráfego supera a capacidade reservada do seu cluster, o limitador de taxa adiciona operações de entrada em excesso a uma fila de entrada em vez de deixá-las competir por recursos com operações em execução. Se o uso de recursos permanecer alto, o limitador de taxa admite operações a uma taxa mais lenta, portanto, mais operações esperam na fila. O limitador de taxa rejeita operações apenas se você habilitar Load Shedding em seu cluster.Se o dimensionamento automático reativo estiver habilitado em seu cluster, o Atlas usará a taxa de operações na fila para determinar quando dimensionar seu cluster. O Atlas relata essa taxa como Limitação de taxa de operação: operações na fila nas métricas do Atlas. Para saber mais, consulte Como o Atlas dimensiona a camada do cluster.
Priorização do controle de execução: Durante a sobrecarga, o Atlas ajuda as leituras e gravar de curta duração a continuarem progredindo ao despriorizar tarefas em segundo plano e operações de longa duração. A query de longa duração pode demorar mais, independentemente de sua importância para os negócios. Sob pressão, o Atlas diminui primeiro as operações caras, demoradas ou de baixa prioridade.
Evicção de cache e ajuste de memória: o Atlas ajusta como seu cluster usa a memória e remove dados em cache. Quando a memória fica baixa, seu cluster diminui a velocidade de forma controlada em vez de ficar sem memória ou limpar repetidamente os dados de que mais precisa.
Limitação de taxa de conexões: Durante picos de conexão, o Atlas permite a entrada de novas conexões de cliente a uma taxa segura e rejeita solicitações de conexão em excesso, mantendo as conexões existentes. Para aprender mais, consulte Limites de taxa de conexão.
Bloqueio de gravação: Em clusters do Atlas Core, se o nó primário ficar com pouco espaço livre em disco, o Atlas bloqueia as operações de gravar no conjunto de réplicas. O Atlas continua a servir leituras enquanto as gravar são bloqueadas. As operações de gravação bloqueadas incluem operações de exclusão, porque excluir documentos pode aumentar temporariamente o espaço em disco usado. Em clusters, o Atlas bloqueia apenas o gravar roteado para o shard afetado.
Em clusters do Atlas Core, o tamanho total do disco de um nó determina os limites que o Atlas aplica. A tabela a seguir lista os limites para cada faixa de tamanho de disco:
Tamanho total do discoLimites8 GiB a 20 GiB
O Atlas bloqueia gravações quando o espaço livre em disco cai abaixo de 600 MiB. O Atlas desbloqueia gravações quando o espaço livre em disco exceder 900 MiB.
20 GiB até 1.25 TiB
O Atlas bloqueia gravações quando o espaço livre em disco cai abaixo de 4% do tamanho total do disco. O Atlas desbloqueia gravações quando o espaço livre em disco excede 6% do tamanho total do disco.
1.25 7600 TiB ou mais
O Atlas bloqueia gravações quando o espaço livre em disco cai abaixo de 50 GiB. O Atlas desbloqueia gravações quando o espaço livre em disco excede 75 GiB.
Para recuperar espaço em disco, aumente o armazenamento do cluster ou habilite o dimensionamento automático de armazenamento.
Quando o Atlas bloqueia gravações, os logs do Atlas retornam um
MongoServerErrorindicando que as gravações estão bloqueadas. O código de erro e o motivo dependem da versão de compatibilidade do recurso (versão de compatibilidade do recurso) do cluster:Para clusters com versão de compatibilidade do recurso 9.0 ou posterior, os logs retornam um
MongoServerErrorsemelhante ao seguinte:Replica set writes blocked, reason: InsufficientDiskSpace.Para clusters com versão de compatibilidade do recurso anterior a 9.0, os logs retornam um
MongoServerErrorsemelhante ao seguinte:User writes blocked, reason: DiskUseThresholdExceeded.
Em cluster Atlas Infinite, o Atlas bloqueia gravar quando o tamanho lógico dos dados no conjunto de réplicas se aproxima do limite máximo de armazenamento do cluster e continua a servir leituras. Para aprender mais sobre os limites de armazenamento em cluster Atlas Infinite, consulte Gerenciar armazenamento em um cluster Atlas Infinite.
Corte de carga
Load Shedding é uma proteção IWM que rejeita operações de banco de dados recebidas o mais cedo possível para limitar seu impacto no cluster. Ao contrário das proteções sempre ativas do IWM, o Load Shedding é opcional, portanto, você pode controlar se o Atlas o aplica ao seu cluster. Quando habilitado, o Load Shedding é ativado apenas durante sobrecarga sustentada, depois que outras proteções não conseguem aliviar a pressão o suficiente.
Como parte das proteções sempre ativas do IWM, o Atlas executa um limitador de taxa de solicitação de entrada em cada processo mongod em seu cluster. Esse limitador de taxa admite operações no processo a uma taxa controlada e adiciona quaisquer solicitações de operação que cheguem mais rápido do que essa taxa a uma fila de entrada nesse processo.
Quando o Load Shedding está ativado, o Atlas limita o tamanho da fila de entrada em cada processo mongod no cluster. Se uma operação chegar enquanto a fila de um processo estiver cheia, o Atlas rejeitará a operação com um erro de sobrecarga. Isso evita que a fila fique muito grande durante uma sobrecarga sustentada.
Quando o Load Shedding está desativado, o Atlas não limita o tamanho da fila de entrada em nenhum processo mongod em seu cluster nem rejeita operações que chegam mais rápido do que a taxa de admissão do limitador de taxa. Durante a sobrecarga sustentada, cada processo mongod continua a adicionar um número ilimitado de operações à sua fila, portanto, as operações levam mais tempo para serem concluídas.
Se o dimensionamento automático reativo estiver ativado em seu cluster, o Atlas usará a taxa de operações que o Load Shedding rejeita para determinar quando dimensionar seu cluster. O Atlas relata essa taxa como Rejected Operations em Limitação de taxa de operação nas métricas do Atlas. Para saber mais, consulte Como o Atlas dimensiona a camada do cluster.
Observação
O Load Shedding é separado do Search Load Shedding. O Load Shedding rejeita operações de banco de dados no processo mongod. O Search Load Shedding rejeita query do MongoDB Search e MongoDB Vector Search no processo mongot. As duas proteções são independentes, portanto, configurar uma não tem efeito sobre a outra. Para aprender mais, consulte:
Configurar o Load Shedding
O Load Shedding está disponível apenas em clusters de conjunto de réplicas M30+ que executam o MongoDB 9.0 ou posterior. Por padrão, o Atlas define o valor da configuração de Load Shedding como Atlas
Managed, o que permite que o Atlas controle o estado efetivo do Load Shedding para seu cluster. No MongoDB 9.0, esse estado é Disabled.
Importante
Quando ativado, o Load Shedding pode aumentar o número de erros de sobrecarga no seu cluster. Para aprender a lidar com esses erros, consulte Lidar com erros de sobrecarga do Load Shedding.
Para configurar Load Shedding em seu cluster, use a IU do Atlas ou a Atlas Administration API:
Requisitos de cluster e versão
O Intelligent Gerenciamento de Carga de Trabalho (IWM) está ativo em todos os clusters dedicados que executam o MongoDB 9.0 ou posterior. O IWM não está disponível em clusters Free ou clusters Flex.
Quando o IWM está ativo em um cluster, o Atlas aplica um subconjunto de proteções de IWM com base no tier, topologia, versão do MongoDB e configuração de Load Shedding do cluster. A tabela a seguir lista as proteções que o Atlas aplica a cada combinação de camada do cluster e topologia no MongoDB 9.0 e posterior:
Proteção IWM | M10 e M20 clusters | M30+ clusters de conjunto de réplicas | M30+ Clusters fragmentados |
|---|---|---|---|
Enfileiramento de entrada | No | Sim | No |
Priorização do controle de execução | No | Sim | No |
Evicção de cache e ajuste de memória | Sim | Sim | Sim |
Limitação da taxa de conexão | Sim | Sim | Sim |
Bloqueio de gravação | Sim | Sim | Sim |
Corte de carga | No | Sim, quando ativado | No |
Observação
Exceções ao MongoDB 9.0 Requisito de versão.
As seguintes proteções IWM estão ativas nos cluster que executam versões do MongoDB anteriores a 9.0:
O bloqueio de gravar está ativo em cluster
M10+que executam o MongoDB 8.0 ou posterior.O ajuste de memória está ativo em
M10+cluster executando o MongoDB 8.0 ou posterior.A **remoção de cache** está ativa em
M10+cluster executando MongoDB 8.3.3 ou posterior, ou MongoDB 8.0.28 ou posterior.A limitação da taxa de conexão está ativa em clusters
M10eM20que executam as seguintes versões do MongoDB:7.0.23 e versões posteriores 7.0.x lançamentos
8.0.12 e versões posteriores 8.0.x lançamentos
8.1.2 e versões posteriores 8.1.x lançamentos
Monitorar IWM
O Atlas fornece várias superfícies de observabilidade que mostram quando o IWM protege seu cluster e quais operações o Atlas atrasou ou rejeitou:
Para revisar as métricas de enfileiramento e admissão de query relacionadas ao IWM, consulte as seguintes métricas do Atlas:
Para configurar e revisar alertas relacionados ao IWM, consulte Gerenciamento Inteligente de Carga de Trabalho na documentação de Condições de Alerta.
Para revisar eventos relacionados ao IWM, como alterações no Load Shedding, consulte Visualizar o feed de atividades.