Si Atlas identifica que el nodo primario de tu clúster excede el bloqueo de escritura umbrales de políticas, Atlas bloquea las escrituras en el clúster hasta que la utilización del disco caiga por debajo de los umbrales de desbloqueo. Cuando MongoDB recibe guardados en un clúster, descarga los datos en disco en bloque, lo que puede generar grandes saltos en la utilización del disco. Quedarse sin espacio en disco en el nodo principal puede ocasionar la inactividad del clúster, especialmente si se produce un agotamiento de disco que se propaga a todos los nodos del set de réplicas.
Para evitar este escenario, cuando Atlas observa que el disco del nodo primario del clúster supera los umbrales críticos de políticas de bloqueo de escritura, Atlas bloquea las escrituras en el nodo primario del clúster. Atlas continúa bloqueando los guardados hasta que la utilización del disco caiga por debajo de los umbrales de desbloqueo.
Al activar el comportamiento de bloqueo de escritura en el nodo primario, Atlas:
Evita la indisponibilidad del clúster debido al agotamiento del disco en el nodo primario.
Permite que los clústeres que operan cerca de la utilización máxima del almacenamiento conserven la disponibilidad de lectura en casos de picos repentinos en el volumen de escritura.
Bloqueo de escritura y gestión inteligente de la carga de trabajo
El comportamiento de bloqueo de escritura en clúster es parte de la Gestión inteligente de carga de trabajo (IWM) en MongoDB Atlas. IWM es un administrador de recursos dinámico que permite la supervisión de cargas de trabajo en tiempo real y protecciones automáticas para mantener una alta disponibilidad bajo carga.
Consideraciones sobre el bloqueo de escritura
El comportamiento de bloqueo de escritura tiene las siguientes consideraciones:
Atlas actualmente bloquea las escrituras en el nodo primario de set de réplicas (no particionados) en clústeres dedicados que ejecutan MongoDB 8.0o superior.
Atlas no bloquea las escrituras en clústeres gratuitos y clústeres Flex.
Atlas supervisa la utilización del disco únicamente en el nodo primario.
Atlas no supervisa la utilización de discos en los nodos secundarios, de solo lectura, de búsqueda o de análisis.
Cómo Atlas Blocks escribe en el nodo principal
Para bloquear escrituras, Atlas utiliza el siguiente proceso:
Cuando el espacio libre en disco del nodo principal excede los umbrales de la política de bloqueo de escritura, Atlas bloquea las escrituras en el nodo principal.
Incluso cuando la base de datos de MongoDB no acepta escrituras, el clúster permanece disponible para lecturas. Puedes leer de los nodos primario y secundarios normalmente.
Cuando Atlas bloquea las escrituras, envía la siguiente alerta:
Writes have been blocked on your cluster due to critically low disk space. La fuente de actividad refleja esta alerta.La parte superior de la página de clúster en la interfaz de usuario de Atlas muestra una pancarta que indica:
"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."Cuando el espacio libre en disco aumenta un 50% por encima del umbral de bloqueo, Atlas desbloquea la acción de guardar en el nodo primario. Cuando Atlas desbloquea las grabaciones, recibes esta alerta:
Writes have been unblocked on your cluster.La fuente de actividad luego refleja esta alerta. No se necesita ninguna otra acción. Para evitar el comportamiento del bloqueo de escritura en el futuro, considera aumentar el almacenamiento del clúster.
Si aumentas manualmente el tamaño del disco del clúster o habilitas el escalado automático en el almacenamiento, Atlas ajusta automáticamente los umbrales de bloqueo de escritura en función del nuevo tamaño del disco.
Prevención de bloqueo de escritura
Para evitar que se produzca un comportamiento de bloqueo de escritura y llevar el clúster por debajo de los umbrales de la política de bloqueo de escritura de Atlas, le recomendamos que:
Enable storage auto-scaling, which automatically scales your cluster storage when disk utilization exceeds 90% and reduces the risk of write-blocking.
Para habilitar el escalado automático de almacenamiento en la Interfaz de Usuario de Atlas, navegue a la Cluster Tier menú y marcar la casilla Storage Scaling en la sección Auto-scale.
Para todos los clústeres nuevos que crees en Atlas Interfaz de Usuario, Atlas habilita el escalado automático de almacenamiento por defecto.
Si creas clústeres con la API, el escalado automático de clústeres no está seleccionado por defecto y debes habilitarlo explícitamente mediante las opciones en el objeto
autoScalingdel endpoint Actualizar un clúster en un proyecto.
Si eliges excluirte del escalado automático de almacenamiento y tu utilización del disco está cerca del 90%, puedes liberar espacio en disco existente antes de que Atlas active el comportamiento de bloqueo de escritura en tu clúster:
Remueva datos no utilizados para liberar espacio en disco. Elimina los índices, o elimina las colecciones o los documentos individuales.
Utiliza el comando
autoCompacten cada nodo de clúster dedicado para compactar el espacio en disco.
Parámetros de umbral de la política de bloqueo de escrituras
Atlas utiliza los siguientes umbrales de bloqueo de escritura para adaptarse a escenarios de utilización de disco con gran volumen de escritura:
Tamaño del disco < 20 GB | Atlas bloquea los guardados cuando el espacio libre en disco cae por debajo de 600 MB. Atlas desbloquea la operación de guardar cuando el espacio en disco supera los 900 MB. |
Tamaño del disco < 1.25 TB | Atlas bloquea las escrituras cuando el espacio libre en disco cae por debajo del 4% del tamaño total del disco. Atlas desbloquea las escrituras cuando el espacio en disco supera el 6% del tamaño total del disco. |
Tamaño del disco ≥ 1.25 TB | Atlas bloquea los guardados cuando el espacio libre en disco cae por debajo de 50 GB. Atlas desbloquea guardados cuando el espacio libre en disco supera los 75 GB. |
Los umbrales no se pueden configurar. Si el tamaño del disco aumenta por escalado automático o si aumentas manualmente el tamaño del disco, Atlas ajusta automáticamente los umbrales basados en el tamaño del disco del clúster.
Una vez que el comportamiento de bloqueo de escritura esté activo en su clúster, usted:
Se puede aumentar el almacenamiento del clúster manualmente desde la página Editar clúster o habilitar la escala automática de almacenamiento en la IU de Atlas para evitar cualquier bloqueo futuro de escritura.
No se pueden eliminar índices ni colecciones porque Atlas bloquea las operaciones que requieren escribir en la base de datos. Para borrar índices y colecciones, aumenta el almacenamiento del clúster.
Bloqueo de escritura y escalado automático del almacenamiento
Atlas bloquea las escrituras cuando el espacio libre en el disco del nodo principal alcanza aproximadamente el 96% del tamaño total del disco, con las advertencias para discos pequeños y grandes indicadas en los umbrales de la política de bloqueo de escritura.
En comparación, el escalado automático se activa cuando la utilización del disco alcanza el 90% del tamaño total del disco. Esto significa que:
If you enable auto-scaling, your cluster has the opportunity to scale up before write-blocking behavior activates. However, storage auto-scaling and write-blocking are independent safety mechanisms. The disk resize isn't instantaneous: your cluster continues to run on the old disk size until the new capacity is fully provisioned. If disk utilization crosses the write-blocking thresholds during this window, Atlas might still temporarily block writes to prevent disk exhaustion and protect cluster availability.
Si deshabilita el escalamiento automático, debe monitorear la utilización del disco y tomar medidas para evitar que se active el comportamiento de bloqueo de escritura.
Solución de Problemas para Bloqueo de Guardado
Cuando Atlas bloquea la escritura en el clúster, se producen las siguientes acciones:
La parte superior de la página del clúster en la Interfaz de Usuario de Atlas muestra un banner que indica que las operaciones de guardar se han bloqueado. Consulta Cómo los bloques de Atlas escriben en el nodo primario.
Atlas emite alertas de bloqueo de escritura que puedes resolver aumentando el almacenamiento del clúster. Consulta también Solución de errores de almacenamiento.
La fuente de actividad del proyecto refleja estas alertas.
Los registros de Atlas devuelven un
MongoServerErrorsimilar al siguiente:User writes blocked, reason: DiskUseThresholdExceeded.El parámetro
userWriteBlockModeen el comando serverStatus refleja el estado actual de bloqueo de escritura del clúster.
Desbloqueando guardados
Atlas desbloquea los guardados cuando el espacio libre en disco aumenta 50% por encima del umbral de bloqueo. El búfer extra para desbloquear escrituras garantiza que:
Atlas no habilita y deshabilita el comportamiento de bloqueo de escritura en sucesión rápida.
El clúster se mantiene en buen estado a medida que comienza a aceptar guardados nuevamente.
Para conocer los parámetros exactos, consulte los umbrales de la política de bloqueo de escritura.