Se o Atlas identificar que o nó primary do cluster excede os limites da política de bloqueio de gravação, o Atlas bloqueará as gravações no cluster até que a utilização do disco caia abaixo dos limites de desbloqueio. Quando o MongoDB recebe gravações em um cluster, ele libera dados para o disco em massa, o que pode resultar em grandes saltos na utilização do disco. A falta de espaço em disco no nó primário pode resultar em tempo de inatividade do cluster, especialmente se o esgotamento do disco atingir todos os nós do conjunto de réplicas.
Para evitar esse cenário, quando o Atlas observa que o disco do nó primário do cluster excede os limites críticos da política de bloqueio de gravação, o Atlas bloqueia as gravações no nó primário do cluster. O Atlas continua bloqueando as gravações até que a utilização do disco caia abaixo dos limites de desbloqueio.
Ao ativar o comportamento de bloqueio de gravação no nó primário, Atlas:
Impede a indisponibilidade do cluster devido ao esgotamento do disco no nó primary.
Permite que clusters que operem perto da utilização máxima de armazenamento mantenham a disponibilidade de leitura em casos de picos súbitos no volume de gravação.
Bloqueio de gravação e gerenciamento inteligente de volume de trabalho
O comportamento de bloqueio de gravação de cluster faz parte do Intelligent Workload Management (IWM) no MongoDB Atlas. OIWM é um gerenciador dinâmico de recursos que permite o monitoramento do volume de trabalho em tempo real e proteção automatizadas para manter a alta disponibilidade sob carga.
Considerações sobre bloqueio de gravação
O comportamento de bloqueio de escrita tem as seguintes considerações:
Atualmente, o Atlas bloqueia gravações no nó primário em conjuntos de réplicas (clusters não fragmentados) em clusters dedicados que executam o MongoDB 8.0+.
O Atlas não bloqueia gravações em clusters gratuitos e Flex .
O Atlas monitora a utilização do disco apenas no nó primário. O Atlas não monitora a utilização do disco em nós secundários, read-only, de pesquisa ou de análise.
Como o Atlas Blocks escreve no nó primary
Para bloquear escritas, o Atlas usa o seguinte processo:
Quando o espaço livre em disco do nó primário excede os limites da política de bloqueio de gravação, o Atlas bloqueia as gravações no nó primário.
Mesmo quando o banco de dados MongoDB não está aceitando gravações, o cluster permanece disponível para leituras. Você pode ler a partir dos nós primários e secundários normalmente.
Quando o Atlas bloqueia gravações, ele envia o seguinte
Writes have been blocked on your cluster due to critically low disk space
alerta:. O feed de atividades reflete este alerta.A parte superior da página do cluster na interface do usuário do Atlas mostra um banner que declara:
"To maintain read availability during critically high disk utilization, Atlas has blocked writes to the following clusters: <clusterName>. Increase disk space or enable storage auto-scaling to unblock writes."
Quando o espaço livre em disco aumenta 50% acima do limite de bloqueio, o Atlas desbloqueia as gravações no nó primário. Quando o Atlas desbloqueia gravações, você recebe este alerta:.
Writes have been unblocked on your cluster
O feed de atividades reflete esse alerta. Nenhuma ação adicional é necessária. Para evitar o comportamento de bloqueio de gravação no futuro, considere aumentar o armazenamento do cluster.
Se você aumentar manualmente o tamanho do disco do cluster ou ativar o auto-scaling do armazenamento, o Atlas ajustará automaticamente os limites de bloqueio de gravação com base no novo tamanho do disco.
Prevenção contra bloqueio de gravação
Para evitar que o comportamento de bloqueio de gravação ocorra e coloque o cluster abaixo dos limites da política de bloqueio de gravação do Atlas , recomendamos que você:
Ative o dimensionamento automático de armazenamento, que dimensiona automaticamente o armazenamento do cluster quando a utilização do disco excede 90% e garante disponibilidade e desempenho consistentes da carga de trabalho.
Para ativar o auto-scaling de armazenamento na UI do Atlas , navegue até o menu Cluster Tier e marque a caixa de seleção Storage Scaling na seção Auto-scale.
Para todos os novos clusters que você cria na UI do Atlas , o Atlas permite o auto-scaling de armazenamento por padrão.
Se você criar clusters com a API, o auto-scaling de cluster não será selecionado por padrão e você deverá habilitá-lo explicitamente, usando as opções no
autoScaling
objeto do endpoint Update One Cluster in One Project.
Se você optar por desativar o auto-scaling de armazenamento e sua utilização do disco estiver próxima de 90%, você poderá liberar o espaço em disco existente antes que o Atlas ative o comportamento de bloqueio de gravação em seu cluster:
Remova os dados não utilizados para liberar espaço em disco. Exclua os índices ou exclua collections ou documentos individuais.
Use o
autoCompact
comando em cada nó de cluster dedicado para compactar o espaço em disco.
Parâmetros do limite da política de bloqueio de escrita
O Atlas usa os seguintes limites de bloqueio de gravação para acomodar cenários de utilização de disco com alto volume de gravação:
Tamanho do disco < 20 GB | O Atlas bloqueia gravações quando o espaço livre em disco cai abaixo de 800 MB. O Atlas desbloqueia gravações quando o espaço em disco excede 1.2 GB. |
Tamanho do disco < 1.25 TB | 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 em disco excede 6% do tamanho total do disco. |
Tamanho do disco ≥ 1.25 TB | O Atlas bloqueia gravações quando o espaço livre em disco cai abaixo de 50 GB. O Atlas desbloqueia gravações quando o espaço livre em disco excede 75 GB. |
Os limites não são configuráveis. Se o tamanho do disco aumentar devido ao auto-scaling ou se você aumentar manualmente o tamanho do disco, o Atlas ajustará automaticamente os limites com base no tamanho do disco do cluster.
Depois que o comportamento de bloqueio de gravação estiver ativo em seu cluster, você:
Pode aumentar o armazenamento do cluster manualmente na página Editar cluster ou habilitar o auto-scaling de armazenamento na UI do Atlas para evitar qualquer comportamento futuro de bloqueio de gravação.
Não é possível excluir índices ou collections porque o Atlas bloqueia operações que exigem gravação no banco de dados. Para excluir índices e coleções, aumente o armazenamento do cluster.
Bloqueio de gravação e escalonamento automático de armazenamento
O Atlas bloqueia as gravações quando o espaço livre em disco no nó primário atinge aproximadamente 96% do tamanho total do disco, com as advertências para discos pequenos e grandes registradas nos limites da política de bloqueio de gravação.
Por comparação, o auto-scaling é acionado quando a utilização do disco atinge 90% do tamanho total do disco. Isso significa que:
Se você ativar o auto-scaling, seu cluster terá a oportunidade de escalar antes que o comportamento de bloqueio de gravação seja ativado.
Se você desabilitar o auto-scaling, deverá monitorar a utilização do disco e tomar ação para evitar que o comportamento de bloqueio de gravação seja ativado.
Solução de problemas de bloqueio de escrita
Quando o Atlas bloqueia gravações no cluster, ocorrem as seguintes ações:
A parte superior da página do cluster na UI do Atlas mostra um banner indicando que as gravações foram bloqueadas.Consulte Como o Atlas Blocks grava no nó primário.
O Atlas emite alertas de bloqueio de gravação que você pode resolver aumentando o armazenamento do cluster. Consulte também Corrigir problemas de armazenamento.
O Feed de atividades do projeto reflete esses alertas.
Os registros do Atlas retornam um
MongoServerError
semelhante a seguinte:User writes blocked, reason: DiskUseThresholdExceeded
.O
userWriteBlockMode
parâmetro no comando serverStatus reflete o status atual de bloqueio de gravação do cluster.
Desbloqueio de gravações
O Atlas desbloqueia as gravações quando o espaço livre em disco aumenta 50% acima do limite de bloqueio. O buffer extra para desbloquear gravações garante que:
O Atlas não habilita e desabilita o comportamento de bloqueio de gravação em rápida sucessão.
O cluster permanece em um bom estado quando começa a aceitar gravações novamente.
Para obter os parâmetros exatos, consulte os limites da política de bloqueio de gravação.