Observação
Esta página se aplica tanto ao Atlas Infinite quanto ao Atlas Core.
Visão geral
Aplicativos modernos devem permanecer disponíveis mesmo quando picos de tráfego e queries caras consomem mais recursos do que o esperado. OIntelligent Workload Management (IWM) é o recurso de disponibilidade gerenciado do 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 rápido do que sua infraestrutura pode escalar. Mesmo que você habilite o auto-scaling, o Atlas leva 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. A IWM fecha essa janela monitorando e reagindo a picos de volume de trabalho e pressão de recursos em tempo real.
IWM é o sistema de proteção de sobrecarga que o Atlas aplica a todos os clusters Dedicados 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 sobrecarregam o cluster. Essas proteções formam uma linha de base de proteção contra sobrecarga. Para saber mais, consulte Proteções sempre ativas.
Aredução de carga é uma proteção opcional que rejeita operações de banco de dados de entrada em resposta a uma sobrecarga sustentada. Para saber mais, consulte Redução de carga.
O Atlas aplica um subconjunto dessas proteções a cada cluster, com base na camada, na topologia, na versão do MongoDB e na configuração de redução de carga do cluster. Para saber 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 de IWM que o Atlas aplica para incorporar a sobrecarga e manter a disponibilidade. Essas proteções estão em execução o tempo todo, mesmo quando a Redução de Carga está desativada, e você não pode desabilitá-las. Para saber 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, o que determina a rapidez com que cada processo permite operações para execução. Quando um pico de tráfego supera a capacidade reservada do cluster, o limitador de taxa adiciona operações de entrada em excesso a uma fila de entrada em vez de permitir que elas contribuam por recursos com operações em execução. Se o uso de recursos permanecer alto, o limitador de taxa permitirá operações em uma taxa mais lenta, portanto, mais operações aguardarão na fila. O limitador de taxa rejeita operações somente se você ativar a Redução de Carga no cluster.Se o auto-scaling reativo estiver habilitado em seu cluster, o Atlas usará a taxa de operações em fila para determinar quando escalar seu cluster. O Atlas relata essa taxa como Limitação de taxa de operação: operações em fila nas métricas do Atlas . Para saber mais, consulte Como o Atlas dimensiona a camada de cluster.
Priorização do controle de execução: o Atlas executa leituras e gravações críticas e atividades internas do cluster, como eleições, à frente de trabalhos em segundo plano e consultas dispendiosas. Sob pressão, o Atlas reduz primeiro as operações caras, de longa duração ou de baixa prioridade.
Remoção de cache e ajuste de memória: o Atlas ajusta como seu cluster usa a memória e remove dados armazenados em cache. Quando a memória fica baixa, o cluster desacelera de forma controlada em vez de ficar sem memória ou de limpar repetidamente os dados de que mais precisa.
Limitação da taxa de conexão: Durante as tempestades de conexão, o Atlas permite novas conexões de cliente a uma taxa segura e rejeita solicitações de conexão em excesso, preservando as conexões existentes. Para saber mais, consulte Limites de taxa de conexão.
Bloqueio de gravação: Em clusters do Atlas Core, se o nó primário for executado gravemente com pouco espaço livre em disco, o Atlas bloqueia as operações de gravação no conjunto de réplicas. O Atlas continua servindo leituras enquanto as escritas estão bloqueadas. As operações de gravação bloqueadas incluem operações de exclusão, pois a exclusão de documentos pode aumentar temporariamente o espaço em disco usado. Em clusters fragmentados, os blocos do Atlas apenas gravam roteados para o fragmento afetado.
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 excede 900 MiB.
20 GiB a 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 TiB ou superior
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 o espaço em disco, aumente o armazenamento do cluster ou habilite o auto-scaling de armazenamento.
Quando o Atlas bloqueia gravações, os registros 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 (FCV) do cluster:Para clusters com FCV 9.0 ou posterior, os registros retornam um
MongoServerErrorsemelhante ao seguinte:Replica set writes blocked, reason: InsufficientDiskSpace.Para clusters com FCV anterior a 9.0, os registros retornam um
MongoServerErrorsemelhante ao seguinte:User writes blocked, reason: DiskUseThresholdExceeded.
Nos clusters do Atlas Infinite, o Atlas bloqueia gravações quando o tamanho lógico dos dados no conjunto de réplicas se aproxima do limite máximo de armazenamento do cluster. Para saber mais sobre os limites de armazenamento em clusters do Atlas Infinite, consulte Gerenciar armazenamento em um cluster do Atlas Infinite.
Redução de carga
O descarte de carga é uma proteção IWM que rejeita operações de banco de dados de entrada o mais cedo possível para limitar seu impacto no cluster. Diferentemente das proteções sempre ativas do IWM, a divisão de carga é opcional, portanto, você pode controlar se o Atlas a aplica ao seu cluster. Quando ativado, o descarte de carga é ativado somente durante a sobrecarga sustentada, depois que outras proteções não conseguem aliviar a pressã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 permite 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 a redução de carga está ativada, 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 impede que a fila fique muito grande durante a sobrecarga sustentada.
Quando a redução de carga está desabilitada, o Atlas não limita o tamanho da fila de entrada em nenhum processo mongod em seu cluster nem rejeita quaisquer operações que cheguem mais rapidamente do que a taxa de entrada 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 demoram mais para serem concluídas.
Se o auto-scaling reativo estiver habilitado em seu cluster, o Atlas usará a taxa de operações que o Descarte de Carga rejeita para determinar quando escalar seu cluster. O Atlas relata essa taxa como Rejected Operations em Limite de taxa de operação nas métricas do Atlas . Para saber mais, consulte Como o Atlas dimensiona a camada de cluster.
Configurar divisão de carga
A redução de carga está disponível somente em clusters de conjunto de réplicas M30+ executando o MongoDB 9.0 ou posterior. Por padrão, o Atlas define o valor da configuração de Redução de Carga como Atlas
Managed, o que permite ao Atlas controlar o estado efetivo de Redução de Carga para seu cluster. No MongoDB 9.0, esse estado é Disabled.
Importante
Quando ativado, o descarte de carga pode aumentar o número de erros de sobrecarga em seu cluster. Para saber como gerenciar esses erros, consulte Como lidar com erros de sobrecarga devido à redução de carga.
Para configurar Load Shedding em seu cluster, use a UI do Atlas ou a API de administração do Atlas :
Requisitos de cluster e versão
O Intelligent Workload Management (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 gratuitos ou clusters flexíveis.
Quando o IWM está ativo em um cluster, o Atlas aplica um subconjunto de proteções do IWM com base no nível, topologia, versão do MongoDB e configuração de descarte de carga do cluster. A tabela seguinte lista as proteções que o Atlas aplica para cada combinação de camada do cluster e topologia no MongoDB 9.0 e posterior:
Proteção IWM | M10 e clusters M20 | 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 |
Remoçã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 |
Redução de carga | No | Sim, quando habilitado | No |
Observação
Exceções ao MongoDB 9.0 Requisitos de versão.
As seguintes proteções de IWM estão ativas em clusters que executam versões do MongoDB anteriores a 9.0:
Obloqueio de gravação está ativo em clusters
M10+executando MongoDB 8.0 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 mais recentes 7.0.x
8.0.12 e versões mais recentes 8.0.x
8.1.2 e versões mais recentes 8.1.x
Monitorar o 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 entrada de queries relacionadas ao IWM, consulte as seguintes métricas do Atlas :
Para configurar e revisar alertas relacionados ao IWM,consulte Intelligent Workload Management na documentação das Condições de alerta.
Para revisar eventos relacionados ao IWM, como alterações na redução de carga, consulte Exibir feed de atividades.