mongot es un motor de búsqueda asignado a la memoria, basado en Lucene y alojado en JVM. Tiene características operativas diferentes a las de mongod:
Sensible a la latencia en el almacenamiento. La latencia de lectura aleatoria del disco afecta directamente al rendimiento de las queries y la indexación. La clase de almacenamiento es una de las decisiones de mayor impacto para una implementación.
Acceso al índice asignado a la memoria. La presión de la caché del sistema de archivos se correlaciona con la latencia de las queries de forma no lineal. Las pequeñas deficiencias de memoria provocan una gran degradación de la latencia.
Impulsado por la replicación.
mongotes un consumidor descendente demongodflujos de cambios. El atraso de la replicación, las lecturas de oplog y el estado de la conexión afectan la actualidad del índice.Múltiples fases de carga de trabajo. La sincronización inicial, la fusión, la replicación en estado estable y la query ejercen presión sobre diferentes recursos. Una señal que es saludable en una fase puede indicar un problema en otra.
Categorías de señales
Categoría | Qué le dice |
|---|---|
Estado | Si el proceso |
Replicación | Si el proceso de |
Indexación | Si el proceso mongot está creando y manteniendo índices, si las fusiones están progresando y si la sincronización inicial está progresando. |
Query | Latencia, rendimiento y tasa de errores en |
Grupos de ejecutores | Utilización del grupo de subprocesos y profundidad de la cola. La saturación aquí predice la degradación de la latencia de la query. |
JVM | Métricas relacionadas con Heap, Garbage Collection y subprocesos en la JVM. |
Sistema | Métricas relacionadas con la CPU, la memoria, la E/S del disco, la red, a nivel de proceso o contenedor. |
Almacenamiento | Métricas relacionadas con IOPS, tasa de fallos de página y espacio libre. |
Incrustación | Rendimiento y tasa de error en el punto de conexión de Voyage AI cuando la incrustación automatizada está habilitada. |
Señales clave para mongot
Estas son las señales clave que se deben supervisar. Si solo puede supervisar unas pocas señales, comience con estas:
Estado de salud y del proceso
Si el proceso
mongotestá activo o no. Unmongotque se está reiniciando no puede servir tráfico. Los bucles de bloqueo indican que hay un problema con la disponibilidad demongot.Si el estado de salud ha alcanzado o no el estado
SERVING. Unmongotque se inició pero nunca terminó la inicialización no puede responder a las query.
Latencia de query
Latencia de query del percentil 50(p50) y del percentil 99(p99) para
$searchy$vectorSearch.Observe p99 especialmente porque las implementaciones demongottienden a degradarse de forma no lineal bajo presión de almacenamiento o memoria. p99 detecta problemas antes que p50.Latencia para solicitudes de gestión de índices como
createSearchIndex,getSearchIndexesy la etapa de agregación$listSearchIndexes. Los picos en estas solicitudes pueden indicar quemongotestá ocupado o inaccesible desdemongod.
atraso de la replicación
Tiempo transcurrido desde el último evento de cambio aplicado de mongod. Esta señal se expone directamente como
mongot_index_stats_indexing_replicationLagMs(por índice, milisegundos). Un pequeño retraso en estado estable, de menos de un segundo a segundos, es normal. Sin embargo, un retraso creciente indica quemongotno puede seguir el ritmo. El retraso sostenido finalmente se cae del oplog y fuerza una resincronización. Una resincronización es mucho peor que el retraso en sí porque requiere una reconstrucción completa del índice. Una reconstrucción completa del índice es computacionalmente costosa y requiere mucho tiempo.mongot_index_stats_*Las métricas se emiten por índice de búsqueda y solo aparecen una vez que existe al menos un índice. En una implementación nueva sin índices, la serie de atraso de la replicación está ausente en lugar de cero. Esto es normal.
Progreso de indexación
Operaciones de indexación activas y su estado (
PENDING,BUILDING,READY,FAILED). Las compilaciones atascadas indican agotamiento de recursos o un problema de datos.Rendimiento de combinación. Las combinaciones son trabajo en segundo plano. Si las combinaciones se retrasan, la latencia de la query aumenta.
Saturación del grupo de ejecutores
Profundidad de la cola para el ejecutor de query y el ejecutor de indexación. Una profundidad de cola sostenida distinta de cero indica saturación y que las query están esperando un hilo de trabajo. Esta es una advertencia muy temprana de que la latencia aumentará.
Estado de JVM
Utilización del montón después de la recolección de basura. Un montón consistentemente por encima del 85% después de la recolección de basura puede provocar un error
OutOfMemoryError.Tiempo de pausa de la recolección de basura. Las pausas prolongadas de GC se traducen directamente en picos de latencia de las queries.
Presión de almacenamiento
Las IOPS de disco sostenidas por encima del punto de funcionamiento seguro del dispositivo son una señal de que el almacenamiento es el cuello de botella. El umbral de asesoramiento de la clase de almacenamiento es 1,000 IOPS sostenidas como indicador. Para obtener más información, consulta Recomendaciones de clase de almacenamiento para mongot.
Tasa de fallos de página. Los fallos de página de búsqueda sostenidos por encima de 1,000/s indican que el sistema operativo está extrayendo repetidamente páginas de índice del disco en lugar de servirlas desde la caché. Con IOPS elevadas, esta es la señal canónica de presión de memoria en la ruta crítica.
Espacio libre en disco en el volumen de índice
Tener menos del 20% libre en el volumen dataPath de mongot puede causar problemas de disponibilidad. Las fusiones pueden requerir espacio en disco más allá de la huella del índice en vivo. Si el volumen es demasiado pequeño, esto puede causar fallas silenciosas.
Señales saludables
Una implementación mongot saludable en estado estable tiene las siguientes señales:
El proceso está activo, el estado es
SERVING.El atraso de la replicación es constantemente inferior a un segundo.
La latencia de la query p99 es estable durante días y no está aumentando.
La profundidad de la cola del grupo de ejecutores es consistentemente cercana a cero.
El montón de JVM posterior a la recolección de elementos no utilizados está muy por debajo del máximo configurado.
Las operaciones de indexación finalizan en el tiempo esperado y se completan en
READY.No hay errores en el registro de mongot más allá de los mensajes benignos conocidos.
Si todo esto es cierto, la implementación se considera correcta. Si hay alguna desviación, consulte la página pertinente para obtener métricas más profundas para investigar.
Atlas vs. observabilidad autogestionada
Los usuarios de Atlas tienen:
La interfaz de usuario de métricas de Atlas Search.
Alertas gestionadas por MongoDB en un conjunto seleccionado de umbrales.
Soporte de Atlas con acceso directo a
mongotFTDC y registros.
Los usuarios autogestionados tienen:
Las métricas y los registros que configure
mongotpara exportar.La plataforma de alertas que conecta.
Responsabilidad de la captura y el reenvío de FTDC al soporte de MongoDB si necesita ayuda.
Los usuarios autogestionados deben establecer la supervisión antes de pasar a producción.