Si Atlas identifica que el nodo principal de su clúster excede el bloqueo de escritura Umbrales de política: Atlas bloquea las escrituras en el clúster hasta que la utilización del disco cae por debajo de los umbrales de desbloqueo. Cuando MongoDB recibe escrituras en un clúster, vacía los datos al disco de forma masiva, lo que puede provocar grandes aumentos en la utilización del disco. Quedarse sin espacio en disco en el nodo principal puede provocar tiempo de inactividad del clúster, especialmente si el agotamiento del disco se propaga a todos los nodos del conjunto de réplicas.
Para evitar esta situación, cuando Atlas observa que el disco del nodo principal del clúster supera los umbrales críticos de la política de bloqueo de escritura, bloquea las escrituras en dicho nodo. Atlas continúa bloqueando las escrituras hasta que la utilización del disco desciende por debajo de los umbrales de desbloqueo.
Al activar el comportamiento de bloqueo de escritura en el nodo primario, Atlas:
Evita la falta de disponibilidad del clúster debido al agotamiento del disco en el nodo principal.
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 el monitoreo de la carga de trabajo en tiempo real y protecciones automatizadas 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 principal.
Atlas no supervisa la utilización del disco en 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 la escritura, envía la siguiente alerta:
Writes have been blocked on your cluster due to critically low disk space. El feed de actividad refleja esta alerta.En la parte superior de la página del clúster en la interfaz de usuario de Atlas se muestra un banner que dice:
"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 supera 50el % del umbral de bloqueo, Atlas desbloquea las escrituras en el nodo principal. Cuando Atlas desbloquea las escrituras, recibe esta
Writes have been unblocked on your clusteralerta:.El feed de actividad refleja esta alerta. No se requiere ninguna acción adicional. Para evitar bloqueos de escritura en el futuro, considere aumentar el almacenamiento del clúster.
Si aumenta manualmente el tamaño del disco del clúster o habilita el escalamiento automático del 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:
Se debe activar el escalado automático del almacenamiento, que escala automáticamente el almacenamiento del clúster cuando la utilización del disco supera el 90% y garantiza una disponibilidad y un rendimiento coherente de la carga de trabajo.
Para habilitar el escalado automático de almacenamiento en la interfaz de usuario de Atlas, navegue hasta Cluster Tier menú y marque la casilla de verificación Storage Scaling en la sección Auto-scale.
Para todos los clústeres nuevos que cree en la interfaz de usuario de Atlas, Atlas habilita el escalamiento automático del almacenamiento de forma predeterminada.
Si crea clústeres con la API, el escalamiento automático del clúster no está seleccionado de manera predeterminada y debe habilitarlo explícitamente mediante las opciones en el
autoScalingobjeto del punto final Actualizar un clúster en un proyecto.
Si decide desactivar el escalamiento automático de almacenamiento y su utilización del disco está cerca del 90%, puede liberar espacio en el disco existente antes de que Atlas active el comportamiento de bloqueo de escritura en su clúster:
Elimine los datos no utilizados para liberar espacio en disco. Elimine los índices, colecciones o documentos individuales.
Utilice el
autoCompactcomando en 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 las escrituras cuando el espacio libre en disco es inferior a 600 MB. Atlas desbloquea las escrituras 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 es inferior al 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 las escrituras cuando el espacio libre en disco es inferior a 50 GB. Atlas desbloquea las escrituras cuando el espacio libre en disco supera los 75 GB. |
Los umbrales no son configurables. Si el tamaño del disco aumenta debido al escalado automático, o si lo aumenta manualmente, Atlas ajusta automáticamente los umbrales según 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 escritura en la base de datos. Para eliminar índices y colecciones, aumente 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:
Si habilita el escalado automático, su clúster tendrá la oportunidad de escalar verticalmente antes de que se active el comportamiento de bloqueo de escritura.
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 de bloqueo de escritura
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 se han bloqueado las escrituras.Consulte Cómo Atlas bloquea las escrituras en el nodo principal.
Atlas emite alertas de bloqueo de escritura que se pueden solucionar aumentando el almacenamiento del clúster. Consulte también Solucionar problemas de almacenamiento.
El feed de actividades del proyecto refleja estas alertas.
Los registros de Atlas devuelven un
MongoServerErrorsimilar al siguiente:User writes blocked, reason: DiskUseThresholdExceeded.El
userWriteBlockModeparámetro en el comando serverStatus refleja el estado actual de bloqueo de escritura del clúster.
Desbloqueo de escrituras
Atlas desbloquea las escrituras cuando el espacio libre en disco supera el 50% del umbral de bloqueo. El búfer adicional para desbloquear las escrituras garantiza que:
Atlas no habilita y deshabilita el comportamiento de bloqueo de escritura en sucesión rápida.
El clúster permanece en un buen estado a medida que comienza a aceptar escrituras nuevamente.
Para conocer los parámetros exactos, consulte los umbrales de la política de bloqueo de escritura.