Configurar o auto-scaling
Nesta página
- Como o Atlas dimensiona a camada de cluster
- Aumentando uma camada do cluster
- Reduzindo uma camada do cluster
- Dimensionando um cluster fragmentado
- Como o Atlas dimensiona o armazenamento do cluster
- A camada do cluster e o armazenamento em cluster podem ser dimensionados em paralelo
- Considerações de oplog
- Configurar opções de auto-scaling
- Auto-scaling habilitado por padrão
- Revise as opções de escalonamento automático da camada de cluster
- Desativar a camada do cluster e o auto-scaling de armazenamento
- Revise o feed de atividades de dimensionamento automático
- Configurar alertas para eventos de dimensionamento automático
Observação
Disponibilidade de funcionalidades
O dimensionamento automático de camada do cluster do Atlas está disponível para todos os níveis de cluster dedicado nas classes de cluster General e Low-CPU.
Você pode configurar as faixas das camadas do cluster que o Atlas usa para dimensionar automaticamente sua camada do cluster, a capacidade de armazenamento ou ambos em resposta ao uso do cluster.
O dimensionamento automático do Atlas ajusta a camada do cluster com base no uso dos recursos em tempo real. O mecanismo aprimorado de dimensionamento automático agora pode detectar com mais precisão a demanda mais alta sustentada e o tráfego de pico de curto prazo para decisões de aumento de escala. Da mesma forma, o Atlas faz escolhas de downscaling mais rapidamente, para otimizar a utilização de recursos e o perfil de custos.
Para ajudar a controlar os custos, você pode especificar um intervalo de tamanhos máximos e mínimos de cluster para os quais seu cluster pode dimensionar automaticamente.
O dimensionamento automático funciona de forma contínua, e o processo não gera nenhum tempo de inatividade. O Atlas mantém um primário durante esse processo, mas os nós são atualizados um por um e ficarão indisponíveis durante a atualização.
Como o Atlas dimensiona a camada de cluster
Observação
Disponibilidade de nível
O dimensionamento automático funciona em camadas de cluster nas classes General e Low-CPU, mas não em clusters na classe Local NVMe SSD.
O Atlas analisa as seguintes métricas de cluster para determinar quando dimensionar um cluster e se a camada de cluster deve ser dimensionada para cima ou para baixo:
Utilização normalizada da CPU do sistema
Utilização da memória do sistema
O Atlas calcula a utilização da memória do sistema com base na memória do nó disponível e na memória total da seguinte forma:
(memoryTotal
- (memoryFree
+ memoryBuffers
+ memoryCached
)) / (memoryTotal
) * 100
No cálculo anterior, memoryFree
, memoryBuffers
e memoryCached
são quantidades de memória disponível que o Atlas pode recuperar para outros fins. Para saber mais, consulte System Memory em Analisar métricas disponíveis.
O Atlas não dimensionará sua camada de cluster se a nova camada de cluster ficar fora da faixa Minimum e Maximum Cluster Size especificada.
O Atlas dimensiona seu cluster para outro nível na mesma classe. Por exemplo, o Atlas dimensiona clusters General para outras classes de clusters General, mas não dimensiona clusters General para classes de cluster Low-CPU.
Os critérios exatos de dimensionamento automático estão sujeitos a alterações para garantir a utilização apropriada dos recursos de cluster.
Importante
Durante uma migração, se você restaurar um snapshot com um tamanho maior que a capacidade de armazenamento do cluster de destino, o cluster não será dimensionado automaticamente.
Se você implantar nós somente leitura e quiser que seu cluster seja dimensionado mais rapidamente, considere ajustar o Modo de dimensionamento do conjunto de réplicas.
Aumentando uma camada do cluster
Para gerenciar com eficácia as cargas de trabalho dinâmicas dos seus aplicativos, o Atlas dimensiona os nós do seu cluster nas condições descritas nesta seção.
Se a próxima camada do cluster estiver dentro da sua faixa Maximum Cluster Size, o Atlas dimensionará os nós do seu cluster para a próxima camada se pelo menos um dos seguintes critérios for verdadeiro para qualquer nó do tipo especificado no cluster:
Para nós operacionais em clusters
M10
, a média de Normalized System CPU Utilization ou System Memory Utilization excedeu 75% dos recursos disponíveis para o cluster na última hora.Para nós operacionais em clusters
M20
, a média de Normalized System CPU Utilization ou System Memory Utilization excedeu 90% dos recursos disponíveis para o cluster por pelo menos 20 minutos, ou excedeu 75% dos recursos disponíveis para o cluster por pelo menos uma hora.Para nós operacionais em clusters
M30+
, a média de Normalized System CPU Utilization ou System Memory Utilization excedeu 90% dos recursos disponíveis para o cluster nos últimos 10 minutos, ou excedeu 75% dos recursos disponíveis para o cluster por pelo menos uma hora.Esses limites garantem que seu cluster seja dimensionado rapidamente em resposta a altas cargas e que seu aplicativo possa lidar com picos de tráfego ou uso, mantendo seu desempenho e confiabilidade.
A Normalized System CPU Utilization média ou o System Memory Utilization excederam 75% de recursos disponíveis para o cluster na última hora.
O Atlas dimensiona um cluster para o próximo nível quando o cluster não foi dimensionado nas seguintes condições:
O cluster
M10+
não foi dimensionado na última hora.O cluster
M20+
não foi escalado verticalmente nos últimos 20 minutos ou uma hora, dependendo dos limites.O cluster
M30+
não foi escalado verticalmente nos últimos 10 minutos ou uma hora, dependendo dos limites.
Por exemplo, o Atlas dimensionará um cluster M30+
em T+10
se a utilização normalizada da CPU do sistema atual do cluster for maior que 90%.
Importante
Picos de carga de trabalho súbita
O dimensionamento para uma camada de cluster maior requer tempo suficiente para preparar recursos de apoio. O dimensionamento automático pode não ocorrer quando um cluster recebe uma explosão de atividade, como uma inserção em massa. Para reduzir o risco de ficar sem recursos, planeje aumentar os clusters antes de inserções em massa e outros picos de volume de trabalho.
Reduzindo uma camada do cluster
Para otimizar os custos, o Atlas reduz os nós no seu cluster nas condições descritas nesta seção.
Se a próxima camada do cluster mais baixa estiver dentro da faixa de Minimum Cluster Size, o Atlas dimensionará os nós do seu cluster para o próximo nível mais baixo se todos os critérios a seguir forem verdadeiros para todos os nós do tipo de cluster especificado:
A média de Normalized System CPU Utilization está abaixo de 50% dos recursos disponíveis para o cluster pelo menos nas últimas 4 horas.
O uso médio do cache do WiredTiger está abaixo de 90% do tamanho máximo do cache do WiredTiger por pelo menos 4 horas no tamanho atual da camada de cluster. Isso indica ao Atlas que o cluster atual não está sobrecarregado.
A utilização total projetada da memória do sistema no novo nível de cluster inferior está abaixo de 60% por pelo menos 4 horas. O Atlas calcula a utilização projetada da memória total mencionada na declaração anterior da seguinte forma.
O Atlas mede o uso de memória atual e substitui o tamanho atual de uso do cache WiredTiger por 80% do tamanho do cache WiredTiger no novo cluster de nível inferior.
Em seguida, o Atlas verifica se o uso total de memória projetado ficaria abaixo de 60% por pelo menos 4 horas no novo tamanho de camada.
Observação
O Atlas inclui o cache WiredTiger em seu cálculo de memória para aumentar a probabilidade de clusters com cache cheio, mas caso contrário, o tráfego baixo será reduzido. Em outras palavras, o Atlas examina o tamanho do cache do WiredTiger para determinar se ele pode reduzir com segurança a escala de um cluster ocioso com baixa utilização normalizada da CPU do sistema nos casos em que os caches WiredTiger do cluster podem atingir 90% do tamanho máximo do cache WiredTiger do cluster.
O cluster não foi reduzido (manual ou automaticamente) nas últimas 24 horas.
Essas condições garantem que o Atlas reduza os nós operacionais em seu cluster para evitar estados de alta utilização.
A média Normalized System CPU Utilization e System Memory Utilization nas últimas 24 horas está abaixo de 50% dos recursos disponíveis para o cluster.
O cluster não foi reduzido (manual ou automaticamente) nas últimas 24 horas.
Observação
M10
e os clustersM20
usam limites mais baixos para contabilizar os limites de uso da CPU que os provedores de nuvem definem após os períodos de intermitência. Esses limites variam dependendo do seu provedor de nuvem e da camada de cluster.
Considerações sobre Dimensionamento Automático Descendente de Camada de Cluster e Armazenamento
Quando o Atlas reduz a capacidade de armazenamento do seu cluster, isso pode levar mais tempo do que expandir a capacidade de armazenamento devido à mecânica do processo de dimensionamento.
Estime o intervalo de cargas de trabalho de sua implantação e, em seguida, defina o valor Minimum Cluster Size para a camada de cluster que tem capacidade suficiente para lidar com a carga de trabalho de sua implantação. Considere quaisquer possíveis picos ou quedas na atividade do cluster.
Não é possível dimensionar para uma camada de cluster menor que
M10
.Não é possível selecionar uma camada mínima de cluster abaixo da configuração de disco atual do cluster. Se seu armazenamento aumentar além do que é permitido pelo seu nível mínimo de cluster, o Atlas aumentará a configuração de armazenamento dos seus clusters além do que o seu nível mínimo de cluster suporta e, em seguida, o Atlas ajustará automaticamente o seu nível mínimo de cluster para um nível que atenda aos requisitos de armazenamento atuais do seu cluster.
Exemplo
Você definiu seus limites de dimensionamento automático como
M20
-M60
e sua camada do cluster atual éM40
com uma capacidade de disco de 200GB. O Atlas aciona um evento de dimensionamento automático de disco para aumentar a capacidade para 320GB porque o uso atual do disco excede 180GB, o que é mais de 90% da capacidade de 200GB.Atlas:
Eleva o nível mínimo do cluster para o próximo nível mais baixo,
M30
, que pode acomodar a nova capacidade de armazenamento.M20
dá suporte a uma capacidade máxima de armazenamento de 256GB, portanto, não é mais um limite de dimensionamento automático válido.O Atlas determina que o tamanho da instância atual,
M40
, seja compatível com a nova configuração de disco. O evento de dimensionamento automático do disco é bem-sucedido.
Dimensionando um cluster fragmentado
O Atlas dimensiona automaticamente a camada de cluster para clusters fragmentados usando os mesmos critérios dos conjuntos de réplicas. O Atlas aplica as seguintes regras:
O auto-scaling se aplica a todos os shards no cluster fragmentado. Não é possível aplicar o auto-scaling para alguns shards e não para outros no mesmo cluster.
Se algum shard atender aos critérios para auto-scale em sua camada do cluster, todos os shards aumentarão sua camada do cluster.
Todos os shards no cluster devem atender aos critérios antes que o Atlas escalone automaticamente a camada do cluster.
O conjunto de réplicas do servidor de configuração não executa auto-scale.
Como o Atlas dimensiona o armazenamento do cluster
O Atlas permite o dimensionamento automático de armazenamento de cluster por padrão. O Atlas aumenta automaticamente o armazenamento do cluster quando o espaço em disco usado atinge 90% para qualquer nó do cluster.
As seguintes considerações se aplicam:
O Atlas aumenta automaticamente apenas o armazenamento em cluster. Você pode reduzir manualmente o armazenamento de cluster na página Editar Cluster .
Nos clusters da AWS, do Azure e do GCP, o Atlas aumenta a capacidade de armazenamento do cluster para atingir 70% do espaço em disco usado. Para saber mais, consulte Alterar capacidade de armazenamento ou IOPS no AWS, Estender capacidade de armazenamento e IOPS no Azure, e Alterar capacidade de armazenamento no Google Cloud.
Evite atividades de gravação em alta velocidade se você planeja dimensionar os clusters. A expansão de um cluster para maior capacidade de armazenamento requer tempo suficiente para preparar e copiar dados para novos discos. Se um cluster receber uma intermitência de atividade de gravação de alta velocidade, como uma inserção em massa, o dimensionamento automático poderá não ocorrer devido a um pico temporário na capacidade de armazenamento em disco. Para reduzir o risco de ficar sem armazenamento em disco, planeje aumentar os clusters antes de inserções em massa e outras instâncias de atividade de gravação em alta velocidade.
O Atlas desativa o dimensionamento automático de disco se você especificar uma classe de camada de cluster para os nós de base e outra classe de camada de cluster diferente para os nós de análise. Por exemplo, se você especificar uma classe de cluster General para nós operacionais em Base Tier e uma classe de cluster Low-CPU para nós analíticos em Analytics Tier, o Atlas desabilitará o dimensionamento automático de disco com a seguinte mensagem de erro:
Disk auto-scaling is not yet available for clusters with mixed instance classes
.O Atlas desabilita o dimensionamento automático de disco se você implantar os nós Base Tier e Analytics Tier em diferentes regiões de provedor de nuvem .
A camada do cluster e o armazenamento em cluster podem ser dimensionados em paralelo
Quando o Atlas tenta dimensionar automaticamente a capacidade de armazenamento do cluster, pode ser necessário dimensionar o armazenamento fora dos limites suportados pela camada de cluster atual. Para ajudar a garantir que seu cluster não sofra nenhum tempo de inatividade, o Atlas dimensiona sua camada de cluster (além do armazenamento do cluster) para acomodar a nova capacidade de armazenamento.
No Azure, se você habilitar o dimensionamento automático em um cluster implantado em uma das regiões que oferecem suporte ao armazenamento estendido, e o IOPS atual for menor do que o IOPS padrão para o tamanho do disco dimensionado automaticamente, o Atlas aumentará o número de IOPS alocado no IOPS e notifica você na IU. Para saber mais, consulte Expandir a capacidade de armazenamento e IOPS no Azure..
Exemplo
A capacidade máxima de armazenamento para um cluster M30
é 480 GB. Se você tiver um cluster M30
com o armazenamento máximo alocado e o espaço em disco usado atingir 90%, um evento de dimensionamento automático de armazenamento exigirá o aumento da capacidade de armazenamento para 600 GB. Nesse caso, o Atlas dimensiona sua camada do cluster para M40
porque essa é a camada do cluster mais baixa que pode permitir a nova capacidade de armazenamento necessária. No Azure, se você implantou o cluster em uma das regiões que oferecem suporte ao armazenamento estendido, o Atlas também aumenta automaticamente o IOPS para corresponder ao nível de IOPS do cluster dessa camada.
Caso o nível máximo de cluster especificado não possa suportar a nova capacidade de armazenamento, o Atlas:
Eleva o nível máximo do cluster para o próximo nível mais baixo que pode acomodar a nova capacidade de armazenamento.
Dimensiona a camada do cluster para esse novo nível máximo.
Observação
Quando o Atlas substitui o nível máximo do cluster, ele também desativa a redução automática do cluster. Para reativar o dimensionamento automático descendente, configure-o em Configurações do cluster. Consulte também Considerações sobre o dimensionamento automático descendente de camada de cluster e armazenamento.
Se o Atlas tentar reduzir a camada do cluster e a camada de destino não for compatível com a capacidade atual do disco, o IOPS provisionado, ou ambos, o Atlas não reduzirá o cluster. Nesse cenário, o Atlas atualiza suas configurações de auto-scaling com base no relacionamento entre sua camada do cluster atual e a camada do cluster máxima configurada:
Se o cluster estiver atualmente na camada máxima de cluster configurado, o Atlas desabilitará a redução automática do cluster porque todos os níveis menores não seriam capazes de acomodar as configurações de armazenamento necessárias. Se você quiser reativar o auto-scaling descendente automático, deverá fazê-lo manualmente a partir das Configurações de cluster.
Se o cluster não estiver atualmente no nível máximo de cluster configurado, o Atlas eleva o nível mínimo de cluster para o nível de cluster atual. Nesse caso, o Atlas não desativa o auto-scaling descendente.
Essa lógica de dimensionamento automático reduz o tempo de inatividade nos casos em que suas configurações de armazenamento não correspondem à sua carga de trabalho.
Considerações de oplog
Dependendo se você optar por usar o auto-scaling de armazenamento, o Atlas gerencia as entradas do oplog com base na janela mínima de retenção do oplog ou no tamanho do oplog. Para saber mais, consulte Comportamento do tamanho do Oplog. O Atlas permite o auto-scaling de armazenamento por padrão.
Configurar opções de auto-scaling
Você pode configurar opções de auto-scaling ao criar ou modificar um cluster. Para novos clusters, o Atlas permite automaticamente o auto-scaling da camada de cluster e o auto-scaling de armazenamento.
Você pode executar um dos seguintes procedimentos:
Você pode revisar e ajustar as camadas do cluster superior e inferior que o Atlas deve usar ao fazer o dimensionamento automático de seu cluster ou
Desativar o uso do dimensionamento automático.
O Atlas exibe opções de auto-scaling na seção Auto-scale do construtor de cluster para clusters de nível General e Low-CPU.
Auto-scaling habilitado por padrão
Quando você cria um novo cluster, o Atlas permite o dimensionamento automático para a camada do cluster e o armazenamento do cluster. Você não precisa ativar explicitamente o dimensionamento automático. Se preferir, você pode optar por não usar a camada de cluster e o armazenamento de cluster.
Observação
O Atlas permite o dimensionamento automático da camada de cluster por padrão quando você cria clusters na UI do Atlas. Se você criar clusters com a API, o Atlas desabilitará o dimensionamento automático da camada de cluster por padrão.
Com o escalonamento automático ativado, seu cluster pode automaticamente:
Escale para aumentar a capacidade com uma camada do cluster mais alta.
Diminuir a camada de cluster atual para uma camada de cluster mais baixa.
Na seção Cluster tier das opções do Auto-scale , você pode especificar os valores do Maximum Cluster Size e Minimum Cluster Size para os quais seu agrupamento pode escalar automaticamente. O Atlas define estes valores da seguinte forma:
O Maximum Cluster Size está definido como um nível acima da camada do cluster atual.
O Minimum Cluster Size está definido para a camada do cluster atual.
Revise as opções de escalonamento automático da camada de cluster
Para revisar as opções de auto-scaling habilitadas para armazenamento e camada do cluster:
Na caixa de seleção Auto-Scale selecionada, revise os valores Maximum Cluster Size e Minimum Cluster Size e ajuste-os se necessário.
Revise a opção Allow cluster to be scaled down que é marcada por padrão quando você cria um novo cluster.
Revise as opções na caixa de seleção Storage Scaling que está marcada por padrão.
Desativar a camada do cluster e o auto-scaling de armazenamento
Para desativar o auto-scaling do cluster (aumento da camada do cluster), ao criar um novo cluster, navegue até o menu Cluster Tier e desmarque a caixa de seleção Cluster Tier Scaling na seção Auto-scale.
Para desativar o escalonamento automático do cluster (diminuindo a camada do cluster), ao criar um novo cluster, navegue até o menu Cluster Tier e desmarque a caixa de seleção Allow cluster to be scaled down na seção Auto-scale.
Para desativar o dimensionamento do armazenamento em cluster, desmarque a caixa de seleção Storage Scaling na seção Auto-scale.
Revise o feed de atividades de dimensionamento automático
Você pode visualizar o feed de atividades para revisar os eventos de cada projeto do Atlas. Quando ocorre um evento de escalonamento automático, o Atlas registra o evento no projeto Activity Feed.
Para visualizar ou baixar somente eventos de dimensionamento automático:
No Activity Feed, clique no menu Filter by event(s) e marque Atlas.
Na caixa de pesquisa acima da lista, comece a inserir
auto-scaling
.No lado direito do menu, todos os eventos de dimensionamento automático são exibidos. Desmarque as opções que você não deseja ver. A lista de feeds é atualizada automaticamente com cada alteração que você faz.
Configurar alertas para eventos de dimensionamento automático
Importante
No início de agosto 2024, o Atlas substituiu e-mails de notificação de dimensionamento automático legados por eventos de dimensionamento automático configuráveis. Por padrão, o Atlas continua a enviar todas as notificações de alerta aos proprietários do projeto. Você pode personalizar sua distribuição de alertas com dimensionamento automático para alterar os destinatários do alerta ou um método de distribuição.
As atividades de escalonamento automático são um subconjunto dos alertas do Atlas.
O Atlas configura automaticamente alertas padrão para eventos de dimensionamento automático. Você pode desativar ou alterar a configuração do alerta para alguns ou todos os eventos de escalonamento automático no nível do projeto.
Para modificar uma configuração de alerta, na seção Category, selecione Atlas Auto Scaling e, em seguida, selecione Condition/Metric na lista. Você pode então modificar as funções dos destinatários dos alertas, alterar um método de notificação, como e-mail ou SMS, e adicionar um notificador, como o Slack. Para saber mais, consulte Configurar um alerta de escalonamento automático.