Nota
Esta página se aplica a Atlas Infinite y Atlas Core.
Overview
Las aplicaciones modernas deben permanecer disponibles incluso cuando los picos de tráfico y las querys costosas consumen más recursos de lo esperado. Intelligent Gestión de carga de trabajo (IWM) es la capacidad de disponibilidad gestionada por MongoDB Atlas que mantiene sus clústeres receptivos y predecibles, incluso bajo sobrecarga.
La sobrecarga se produce cuando el clúster recibe más operaciones de las que sus recursos pueden procesar. La sobrecarga puede desarrollarse más rápido de lo que su infraestructura puede escalar. Aunque habilite escalado automático, Atlas requiere tiempo para aprovisionar capacidad adicional. Esto abre una ventana durante la cual un clúster puede volverse inestable si trata todas las operaciones de la misma manera. IWM cierra esa ventana mediante la supervisión y la reacción a los picos de carga de trabajo y la presión de los recursos en tiempo real.
IWM es el sistema de protección contra sobrecarga que Atlas aplica a todos los clústeres dedicados que ejecutan MongoDB 9.0 o posterior. IWM incluye las siguientes protecciones:
Las protecciones siempre activas ponen en cola, ralentizan y priorizan las operaciones para evitar que saturen el clúster. Estas protecciones forman una base de defensa contra la sobrecarga. Para aprender más, consulte Protecciones siempre activas.
Load Shedding es una protección opcional que rechaza las operaciones de base de datos entrantes en respuesta a una sobrecarga sostenida. Para aprender más, consulta Deslastre de carga.
Atlas aplica un subconjunto de estas protecciones a cada clúster, en función del nivel del clúster, la topología, la versión de MongoDB y configuración de descarga de carga. Para aprender más, consulte Requisitos de clúster y versión.
Protecciones siempre activas
Las protecciones siempre activas son el conjunto básico de protecciones IWM que Atlas aplica para absorber la sobrecarga y mantener la disponibilidad. Estas protecciones se ejecutan en todo momento, incluso cuando Load Shedding está deshabilitado, y no se pueden desactivar. Para saber cuáles de estas protecciones se aplican a su clúster, consulte Requisitos de clúster y versión.
Puesta en cola de entrada: Atlas ejecuta un limitador de velocidad de solicitudes de entrada en cada
mongodproceso en su clúster, que determina la rapidez con la que cada proceso admite operaciones para su ejecución. Cuando un pico de tráfico supera la capacidad reservada de su clúster, el limitador de velocidad añade las operaciones entrantes excesivas a una cola de entrada en lugar de permitir que compitan por los recursos con las operaciones en ejecución. Si el uso de recursos se mantiene alto, el limitador de velocidad admite operaciones a un ritmo más lento, por lo que más operaciones esperan en la cola. El limitador de velocidad rechaza las operaciones solo si habilita reducción de carga en su clúster.Si el escalado automático reactivo está habilitado en su clúster, Atlas utiliza la tasa de operaciones en cola para determinar cuándo escalar su clúster. Atlas informa de esta tasa como Limitación de la tasa de operaciones: Operaciones en cola en las métricas de Atlas. Para aprender más, consulta Cómo Atlas escala el nivel de clúster.
Priorización del control de ejecución: Durante la sobrecarga, Atlas ayuda a que las lecturas y guardar de corta duración sigan avanzando al despriorizar las tareas en segundo plano y las operaciones de larga duración. Las query de larga duración pueden tardar más, independientemente de su importancia para el negocio. Bajo presión, Atlas ralentiza primero las operaciones costosas, de larga duración o de baja prioridad.
Expulsión de la caché y ajuste de la memoria: Atlas ajusta cómo su clúster utiliza la memoria y expulsa los datos de la caché. Cuando la memoria escasea, su clúster se ralentiza de forma controlada en lugar de quedarse sin memoria o borrar repetidamente los datos que más necesita.
Limitación de la tasa de conexión: Durante las tormentas de conexión, Atlas admite nuevas conexiones de cliente a una tasa segura y rechaza las solicitudes de conexión excesivas mientras conserva las conexiones existentes. Para aprender más, consulte Límites de velocidad de conexión.
Bloqueo de guardar: En los clústeres de Atlas Core, si el nodo primario se queda sin espacio libre en disco, Atlas bloquea las operaciones de guardar en el set de réplicas. Atlas continúa sirviendo lecturas mientras se bloquean los guardados. Las operaciones de guardar bloqueadas incluyen operaciones de borrado, porque borrar documentos puede aumentar temporalmente el espacio en disco utilizado. En clúster particionado, Atlas solo bloquea las operaciones de guardar dirigidas a la partición afectada.
El tamaño total del disco de un nodo determina los umbrales que Atlas aplica. La siguiente tabla enumera los umbrales para cada rango de tamaño de disco:
Tamaño total del discoUmbrales8 GiB a 20 GiB
Atlas bloquea el guardar cuando el espacio libre en disco cae por debajo de 600 MiB. Atlas desbloquea el guardar cuando el espacio libre en disco supera 900 MiB.
20 GiB a 1.25 TiB
Atlas bloquea el guardar cuando el espacio libre en disco cae por debajo del 4% del tamaño total del disco. Atlas desbloquea las operaciones de guardar cuando el espacio libre en disco supera el 6% del tamaño total del disco.
1.25 TiB o superior
Atlas bloquea guardar cuando el espacio libre en disco cae por debajo de 50 GiB. Atlas desbloquea los guardados cuando el espacio libre en disco supera los 75 GiB.
Para recuperar espacio en disco, aumente el almacenamiento del clúster o habilite el escalado automático del almacenamiento.
Cuando Atlas bloquea los guardados, los registros de Atlas devuelven un
MongoServerErrorindicando que los guardados están bloqueados. El código de error y el motivo dependen de la compatibilidad de características entre versiones (FCV) del clúster:Para clústeres con compatibilidad de características entre versiones 9.0 o posterior, los registros devuelven un
MongoServerErrorsimilar al siguiente:Replica set writes blocked, reason: InsufficientDiskSpace.Para clústeres con compatibilidad de características entre versiones anterior a 9.0, el registro devuelve un
MongoServerErrorsimilar al siguiente:User writes blocked, reason: DiskUseThresholdExceeded.
En los clústeres Atlas Infinite, Atlas bloquea las operaciones de guardar cuando el tamaño lógico de los datos en el set de réplicas se acerca al límite máximo de almacenamiento del clúster. Para aprender más sobre los límites de almacenamiento en los clústeres Atlas Infinite, consulte Gestionar el almacenamiento en un clúster Atlas Infinite.
Reducción de carga
Load Shedding es una protección IWM que rechaza las operaciones de base de datos entrantes lo antes posible para limitar su impacto en el clúster. A diferencia de las protecciones siempre activas de IWM, la descarga de carga es opcional, por lo que puede controlar si Atlas lo aplica a su clúster. Cuando está habilitada, la descarga de carga se activa únicamente durante una sobrecarga sostenida, después de que otras protecciones no puedan aliviar suficiente presión.
Como parte de las protecciones siempre activas de IWM, Atlas ejecuta un limitador de velocidad de solicitudes de entrada en cada mongod proceso en su clúster. Este limitador de tasa admite operaciones en el proceso a una tasa controlada, y añade cualquier solicitud de operación que llegue más rápido que esta tasa a una cola de entrada en ese proceso.
Cuando la reducción de carga está habilitada, Atlas limita el tamaño de la cola de entrada en cada proceso mongod del clúster. Si llega una operación mientras la cola de un proceso está llena, Atlas rechaza la operación con un error de sobrecarga. Esto evita que la cola crezca demasiado durante una sobrecarga sostenida.
Cuando el deslastre de carga está deshabilitado, Atlas no limita el tamaño de la cola de entrada en ningún proceso mongod en su clúster ni rechaza ninguna operación que llegue más rápido que la tasa de admisión del limitador de velocidad. Durante una sobrecarga sostenida, cada proceso mongod continúa añadiendo un número ilimitado de operaciones a su cola, por lo que las operaciones tardan más en completarse.
Si el escalado automático reactivo está habilitado en su clúster, Atlas utiliza la tasa de operaciones que Load Shedding rechaza para determinar cuándo escalar su clúster. Atlas informa esta tasa como Rejected Operations en Limitación de velocidad de operaciones en las métricas de Atlas. Para aprender más, consulta Cómo Atlas escala el nivel de clúster.
Nota
La reducción de carga es independiente de la reducción de carga de búsqueda. La reducción de carga rechaza las operaciones de base de datos en el proceso mongod. La reducción de carga de búsqueda rechaza las consultas de búsqueda de MongoDB y de búsqueda vectorial de MongoDB en el proceso mongot. Ambas protecciones son independientes, por lo que configurar una no afecta a la otra. Para obtener más información, consulte:
Configurar reducción de carga
Load Shedding solo está disponible en M30+ clústeres de set de réplicas que ejecutan MongoDB 9.0 o posterior. Por defecto, Atlas establece el valor de la configuración de Load Shedding a Atlas
Managed, lo que permite a Atlas controlar el estado efectivo de Load Shedding para su clúster. En MongoDB 9.0, ese estado es Disabled.
Importante
Cuando se habilita, Load Shedding puede aumentar el número de errores de sobrecarga en su clúster. Para aprender a gestionar estos errores, consulte Gestionar errores de sobrecarga de la descarga de carga.
Para configurar Load Shedding en su clúster, utilice la Interfaz de Usuario de Atlas o la Atlas Administration API:
Requisitos de clúster y versión
La gestión inteligente de la carga de trabajo (IWM) está activa en todos los clústeres dedicados que ejecutan MongoDB 9.0 o versiones posteriores. IWM no está disponible para los clústeres gratuitos o los clústeres Flex.
Cuando IWM está activo en un clúster, Atlas aplica un subconjunto de protecciones de IWM basándose en el nivel, la topología, la versión de MongoDB del clúster y Load Shedding configuration. La siguiente tabla enumera las protecciones que Atlas aplica a cada combinación de nivel de clúster y topología en MongoDB 9.0 y versiones posteriores:
Protección IWM | M10 y M20 clústeres | M30+ clústeres de set de réplicas | M30+ Clústeres particionados |
|---|---|---|---|
Puesta en cola de ingreso | No | Sí | No |
Priorización del control de ejecución | No | Sí | No |
Expulsión de la caché y optimización de la memoria | Sí | Sí | Sí |
Limitación de la tasa de conexión | Sí | Sí | Sí |
Bloqueo de guardar | Sí | Sí | Sí |
Reducción de carga | No | Sí, cuando está habilitado | No |
Nota
Excepciones a MongoDB 9.0 Requisitos de la versión.
Las siguientes protecciones IWM están activas en clústeres que ejecutan versiones de MongoDB anteriores a 9.0:
El bloqueo de guardar está activo en
M10+clústeres que ejecutan MongoDB 8.0 o posterior.La optimización de memoria está activa en
M10+clústeres que ejecutan MongoDB 8.0 o posterior.La expulsión de caché está activa en
M10+clústeres que ejecutan MongoDB 8.3.3 o posterior, o MongoDB 8.0.28 o posterior.La limitación de la tasa de conexión está activa en los clústeres
M10yM20que ejecutan las siguientes versiones de MongoDB:7.0.23 y posteriores 7.0.x lanzamientos
8.0.12 y posteriores 8.0.x lanzamientos
8.1.2 y posteriores 8.1.x lanzamientos
Supervisar IWM
Atlas proporciona varias superficies de observabilidad que muestran cuándo IWM protege su clúster y qué operaciones Atlas retrasó o rechazó:
Para revisión de las colas relacionadas con IWM y las métricas de admisión de query, consulte las siguientes métricas de Atlas:
Para configurar y realizar una revisión de las alertas relacionadas con IWM, consulte gestión inteligente de la carga de trabajo en la documentación de condiciones de alerta.
Para revisar los eventos relacionados con IWM, como los cambios en Load Shedding, consulte Ver la fuente de actividad.