MongoDB Search activa las alertas de MongoDB Search cuando la cantidad de CPU y memoria utilizadas por los procesos de MongoDB Search alcanza un umbral específico. Si el proceso de búsqueda (mongot) se queda sin memoria, la indexación y las queries fallan. Se pueden configurar las condiciones de alerta de MongoDB Search en el modal de configuración de alertas del proyecto. También se pueden ver las métricas de MongoDB Search con la supervisión de clúster.
ADVERTENCIA: Si particiona una colección que ya tiene un índice de búsqueda de MongoDB, podría experimentar un breve período de resultados de búsqueda incompletos mientras el índice se está compilando en una partición. Además, si añade una partición a una colección ya particionada que contiene un índice de búsqueda de MongoDB, sus queries de búsqueda en esa colección podrían devolver resultados incompletos hasta que se complete el proceso de sincronización inicial en las particiones agregadas. Para obtener más información, consulte el proceso de sincronización inicial.
Condiciones de alerta
Puedes configurar las siguientes condiciones de alerta en la página de Configuración de alertas a nivel de proyecto para activar alertas.
Atlas Search: Index Replication Lag ocurre si el número aproximado de milisegundos que MongoDB Search está retrasado en la replicación de cambios desde el oplog de mongod está por encima o por debajo del umbral.
Si el atraso de la replicación crece lo suficiente como para que mongot quede rezagado respecto de la oplog window configurada, mongot ya no puede sincronizarse incrementando. Cuando esto ocurre, mongot realizará automáticamente una reconstrucción completa del índice. Durante la reconstrucción, las consultas de búsqueda seguirán funcionando pero devolverán resultados anteriores.
Para reducir el atraso de la replicación:
Aumente el tamaño de su oplog para darle a
mongotmás tiempo para sincronizarse durante ráfagas de escritura. Puedes configurar el tamaño mínimo del Oplog en la configuración del clúster.Escala hacia arriba tus Search Nodos para brindarle a
mongotmás CPU y memoria para la replicación. Para obtener más información sobre cómo agregar o escalar Nodos de búsqueda, consulta Consejos para dimensionar y escalar Nodos de búsqueda.Reducir el volumen de picos de guardar agrupando o limitando (throttling) grandes operaciones masivas cuando sea posible.
Supervise el volumen de escritura junto con el atraso de la replicación. Un repentino aumento en el rendimiento de escritura es un activador común para el agotamiento del oplog. Para obtener más información sobre la supervisión del volumen de escritura y la resolución de problemas, consulta Solución de problemas de Oplog.
Umbral recomendado: Establezca esta alerta muy por debajo de la duración de su oplog window. Por ejemplo, si tu ventana de oplog es de 24 horas, considera alertar al 30--50% de esa ventana (p.ej., 8--12 horas) para darte tiempo de responder antes de que mongot desaparezca del oplog.
Atlas Search: Index Size on Disk Ocurre si el tamaño total de todos los índices de MongoDB Search en disco, en bytes, supera o está por debajo del umbral.
Atlas Search: Mongot paused initial sync ocurre si la sincronización inicial se interrumpe por el proceso de búsqueda de MongoDB mongot debido a una alta utilización del disco.
Atlas Search: Mongot is approaching replication stop threshold ocurre si el uso del disco en un nodo de búsqueda es mayor o igual al 85%.
Atlas Search: Max Number of Lucene Docs se ejecuta automáticamente por defecto. Esta alerta se produce si el número límite superior de Lucene Docs utilizados para almacenar los índices MongoDB Search de un conjunto de réplicas o partición determinado supera el umbral.
Atlas Search: Mongot stopped replication se ejecuta automáticamente por defecto.
Esta alerta sólo ocurre en Nodos de búsqueda dedicados cuando la replicación se interrumpe por el proceso MongoDB Search mongot debido a la alta utilización del disco. La replicación se pausa cuando la utilización del disco alcanza el 90% y se reanuda automáticamente cuando la utilización cae por debajo del 85%.
Cuando la replicación está en pausa, los nodos de búsqueda podrían seguir sirviendo queries, pero los datos replicados podrían quedar desactualizados. Por ejemplo, si mongot ya se está ejecutando, las asignaciones de sinónimos podrían permanecer cargadas, pero podrían no reflejar las actualizaciones recientes. Si Atlas aprovisiona un nuevo nodo de búsqueda mientras la replicación está en pausa, es posible que el nuevo proceso de mongot no tenga asignaciones de sinónimos disponibles.
La replicación pausada también puede retrasar o impedir el provisionamineto rápido de nodos de búsqueda, ya que depende de que Atlas replique una copia reciente del índice al escalar los nodos de búsqueda.
Si la replicación se pausa durante un período prolongado, el proceso mongot puede salirse del oplog. Si mongot se cae del oplog, Atlas reconstruye el índice.
Para evitar que mongot caiga fuera del oplog:
Potencia tus Search nodos para reducir el uso del disco.
Borrar los índices de MongoDB Search no utilizados.
Agregar nodos de búsqueda adicionales.
Crea particiones en tu clúster para distribuir mejor los datos y reducir la presión sobre el disco.
Atlas Search: Number of Error Queries ocurre si el número de consultas para las que MongoDB Search no puede devolver una respuesta está por encima o por debajo del umbral.
Atlas Search: Number of Successful Queries ocurre si el número de consultas para las que MongoDB Search devolvió una respuesta correctamente está por encima o por debajo del umbral.
Atlas Search: Total Number of Queries ocurre si el número de consultas enviadas a MongoDB Search está por encima o por debajo del umbral.
Atlas Search Opcounter: Delete ocurre si el número total de documentos o campos (especificados en la definición del índice) eliminados por segundo está por encima o por debajo del umbral.
Atlas Search Opcounter: Getmore se activa si el número total de getmore comandos ejecutados en todas las queries de MongoDB Search por segundo está por encima o por debajo del umbral.
Atlas Search Opcounter: Insert ocurre si el número total de documentos o campos (especificados en la definición del índice) que MongoDB Search indexa por segundo está por encima o por debajo del umbral.
Atlas Search Opcounter: Update ocurre si el número total de documentos o campos (especificados en la definición del índice) que MongoDB Search actualiza por segundo supera o no alcanza el umbral.
Insufficient disk space to support rebuilding search indexes se ejecuta automáticamente por defecto. Esta alerta se produce cuando el clúster se queda sin suficiente espacio libre en disco para soportar los índices de MongoDB Search.
Nota
Esta alerta podría aparecer cuando Atlas automáticamente actualiza sus índices de búsqueda para habilitar nuevas características. Su clúster debe tener suficiente espacio en disco tanto para la versión anterior como para la nueva del índice. Si la reconstrucción aumenta el uso del espacio en disco a 90% o más, Atlas aumenta el almacenamiento del clúster si se habilitó el escalado automático. Después de que se complete la actualización del índice, Atlas elimina la versión anterior del índice, lo que libera espacio en disco.
Search Memory: Resident ocurre si el total de bytes de memoria residente ocupado por el proceso MongoDB Search está por encima o por debajo del umbral.
Search Memory: Shared ocurre si el total de bytes de memoria compartida ocupados por el proceso de búsqueda de MongoDB está por encima o por debajo del umbral.
Search Memory: Virtual se produce si el número total de bytes de memoria virtual ocupados por el proceso de MongoDB Search supera o queda por debajo del umbral.
Search Process: CPU (Kernel) % ocurre si el porcentaje de tiempo que la CPU dedicó al servicio de llamadas del sistema operativo para el proceso MongoDB Search supera el umbral.
Search Process: CPU (User) % sucede si el porcentaje de tiempo que la CPU dedica a atender el proceso de MongoDB Search supera el umbral.
Search Process: Disk space used ocurre si el total de bytes de espacio en disco utilizado por el proceso de MongoDB Search supera el umbral.
Search Process: Ran out of memory se ejecuta automáticamente por defecto. Puedes configurar la configuración de la alerta para desactivar esta notificación. Esta alerta ocurre cuando el proceso de búsqueda (mongot) se queda sin memoria. Cuando el proceso de búsqueda se queda sin memoria, la indexación y las queries fallan.
Desencadenantes comunes
Las alertas de MongoDB Search suelen ocurrir cuando se intenta compilar un índice de búsqueda grande o complejo. Estos índices permanecen en la fase Initial Sync hasta que se resuelva el problema de memoria.
Soluciona el problema inmediato
Si el proceso de búsqueda (mongot) se queda sin memoria o espacio en disco, puede actualizar su clúster para solucionar el problema inmediato. Puedes seleccionar un nivel de clúster con más memoria, almacenamiento y IOPS.
Implemente una solución a largo plazo
Para evitar alertas de MongoDB Search en el futuro, revisa cuidadosamente Mejorar el desempeño de MongoDB Search para MongoDB Search.
Para optimizar los índices, se recomienda implementar nodos de búsqueda dedicados, lo que permite escalar el clúster de Atlas y $search a las cargas de trabajo de forma independiente. Los nodos de búsqueda dedicados sólo ejecutan el proceso mongot, y por lo tanto mejoran la disponibilidad, el rendimiento y el equilibrado de cargas de trabajo del proceso mongot.
Supervisa tu progreso
Consulta las gráficas de MongoDB Search disponibles para supervisar las métricas de MongoDB Search.
Supervise las métricas de MongoDB Search para evaluar y optimizar sus índices de MongoDB Search.
Para obtener más información, consulte Ver métricas de clúster