Solo disponible en clústeres M10+
El Analizador de Consultas diagnostica y monitoriza problemas de rendimiento. Esta monitorización permite detectar consultas de ejecución lenta y sus estadísticas clave de rendimiento en la interfaz de usuario de Atlas.
Atlas recopila y muestra estadísticas de cualquiera de sus mongodinstancias. El generador de perfiles de consultas almacena su consulta mongod Datos de registro, a los que se puede acceder directamente a través del Generador de perfiles de consultas o de la CLI de Atlas, y los utilizan para identificar consultas lentas. Atlas muestra estos datos en la Query Insights pestaña en la sección Query Profiler de una instancia.
Nota
El Perfilador de Consultas es diferente del Perfilador de Base de Datos. El Perfilador de Consultas identifica consultas ineficientes específicas basándose en las entradas de los mongod registros. El Perfilador de Base de Datos devuelve información detallada sobre los comandos ejecutados en mongod según el nivel de perfil especificado. Cambiar el nivel de perfil no afecta las consultas lentas que se muestran en el Perfilador de Consultas.
El Perfilador de Consultas Atlas muestra las operaciones en todo el clúster de forma predeterminada. Puede filtrar los hosts para cuyas operaciones el Perfilador de Consultas muestra datos con el menú desplegable Filter by Hosts, que le permite ver los datos relacionados con uno o más hosts específicos o ver grupos de hosts principales o secundarios. La pestaña Query Insights muestra información para revelar operaciones lentas de la base de datos durante un período determinado, como en los siguientes casos:
Operation Execution Time
Docs Examined : Returned Ratio
Atlas Query Profiler admite operaciones de agrupamiento del mismo tipo que se ejecutan en la misma colección y alrededor de la misma marca de tiempo para admitir puntos de datos adicionales.
Para admitir puntos de datos adicionales, Atlas Query Profiler admite operaciones de agrupamiento que cumplan los siguientes criterios:
Las operaciones son del mismo tipo de operación.
Las operaciones se ejecutan en el mismo espacio de nombres.
Las operaciones tienen valores booleanos de
hasSortyusedIndexcoincidentes.Las operaciones se ejecutan alrededor de la misma marca de tiempo.
Atlas administra el umbral de operaciones lentas para cada mongod host según el tiempo promedio de ejecución de operaciones en ese host. Este umbral se puede modificar con el db.setProfilingLevel mongosh comando.
Nota
Cambiar el umbral para operaciones lentas mediante db.setProfilingLevel puede impactar el rendimiento y la configuración de los registros del sistema. Considere cuidadosamente cualquier implicación de rendimiento y seguridad antes de usar db.setProfilingLevel para ajustar la configuración del perfilador del query en una implementación de producción. La configuración del perfilador del query se restablece a los valores por defecto después de reiniciar un nodo.
Además, al hacer zoom en el eje x del diagrama de dispersión se volverán a capturar las operaciones lentas y se podrá brindar una fidelidad más detallada de las operaciones lentas durante el período de tiempo seleccionado.
Nota
Para desactivar el umbral de operación lenta administrado por Atlas y usar un umbral fijo de consulta lenta de 100 milisegundos, utilice la API de administración de Atlas. M0 Consulte Deshabilitar el umbral de operación lenta administrado. Para clústeres y clústeres Flex, Atlas deshabilita el umbral de operación lenta administrado por Atlas de forma predeterminada y no se puede habilitar.
Considerations
Importante
Lea las siguientes consideraciones antes de habilitar el Generador de perfiles de consultas.
Seguridad
Los datos del perfil pueden incluir información confidencial, como el contenido de las consultas a la base de datos. Asegúrese de que la exposición de estos datos a Atlas se ajuste a sus prácticas de seguridad de la información.
Limitaciones del análisis de datos
El Analizador de Consultas muestra aproximadamente 100,000 registros muestreados a la vez. Muestra todos los registros si se registraron 100,000 o menos registros en los hosts y el intervalo de tiempo seleccionados.
Limitaciones de visualización de datos
Atlas no muestra más de 100,000 puntos de datos en los Query Profiler gráficos.
Los datos de registro se procesan por lotes. Pueden tener un retraso de hasta cinco minutos con respecto al tiempo real.
Cantidad de registros
Si un clúster experimenta un pico de actividad y genera una cantidad extremadamente grande de mensajes de registro, Atlas puede dejar de recopilar y almacenar nuevos registros durante un período.
Nota
Los límites de velocidad de análisis de registros se aplican únicamente a la Interfaz de Usuario de Performance Advisor, la Interfaz de Usuario de Query Insights, la Interfaz de Usuario de Access Tracking y la Interfaz de Usuario de MongoDB Search Query Analytics. Los archivos de registro descargables siempre están completos.
Operaciones $lookup de alta latencia
Algunas operaciones de alta latencia $lookup no generan un registro de consultas lentas para la colección externa. Esto puede deberse a que los registros de consultas lentas corresponden a operaciones reportadas en el Analizador de Consultas, mientras que las métricas de latencia solo se incrementan cuando se adquiere un bloqueo de colección.
Si la consulta $lookup en un fragmento puede realizar una lectura local, la consulta $lookup no registra una operación independiente para consultar la colección externa. Una lectura local se refiere a cuando la consulta en la colección externa se dirige únicamente al mismo fragmento donde se ejecuta la operación actual. Como resultado, la consulta $lookup aumenta las métricas de latencia y el número de operaciones de Namespace Insights, pero no genera un registro de consultas lentas para la colección externa.
Acceso requerido
Para habilitar o deshabilitar Performance Advisor y Query Profiler para un proyecto, debe tener el rol para Project Owner Organization Owner el proyecto o el rol en su organización principal.
Para ver el rendimiento de la consulta en el Generador de perfiles de consultas, debe tener Project Read Only acceso o Project Observability Viewer al proyecto.
Habilitar y deshabilitar el generador de perfiles de consultas
Atlas habilita el generador de perfiles de consultas de forma predeterminada.
Para deshabilitar el generador de perfiles de consultas:
En Atlas, diríjase a la página Project Settings.
Si aún no se muestra, seleccione la organización que contiene su proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.
En la barra lateral, haga clic en Project Settings.
La página Configuración del proyecto se muestra.
Detectar consultas lentas con el generador de perfiles de consultas
La siguiente sección describe cómo encontrar consultas lentas utilizando el Generador de consultas.
En Atlas, ve a la página Clusters de tu proyecto.
Si aún no se muestra, seleccione la organización que contiene su proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Clusters en la sección Database.
La página de clústeres se muestra.
Acceda al generador de perfiles de consultas.
Hacer clic en el botón View Monitoring para el clúster.
Haz clic en la pestaña Query Insights.
Haz clic en la pestaña Query Profiler.
El generador de perfiles de consultas muestra todos los datos del registro en los nodos primarios y secundarios de forma predeterminada.
Personalice el generador de perfiles de consultas.
El generador de perfiles de consultas utiliza un gráfico de dispersión y una tabla directamente debajo del gráfico para ayudarle a encontrar operaciones lentas.
Seleccione uno o más hosts cuyas métricas desea ver en el menú desplegable Filter by Hosts.
Seleccione el período de tiempo en los menús desplegables Time Range o Filter by Date and Time. El Generador de perfiles de consultas muestra los datos de las últimas 24 horas de forma predeterminada.
Seleccione la métrica en el menú desplegable Operation Execution Time. Las opciones incluyen:
Operation Execution Time (predeterminado): el tiempo total, generalmente en milisegundos, que tardó en completarse una operación de base de datos MongoDB.
Response Length:El tamaño de los documentos o datos devueltos por la base de datos en respuesta a una operación, medido en bytes.
Docs Examined:El número total de documentos escaneados dentro de la colección para encontrar los resultados de una consulta.
Docs Returned:La cantidad de documentos que coincidieron con los criterios de consulta que Atlas devolvió para la consulta.
Keys Examined: El número total de entradas de índice escaneadas por la base de datos durante la ejecución de la query.
Num Yields:La cantidad de veces que se detuvo una operación para permitir que otras operaciones continuaran.
Docs Examined : Returned Ratio: La relación calculada dividiendo Docs Examined entre Docs Returned.
Keys Examined : Returned Ratio: La relación calculada dividiendo Keys Examined entre Docs Returned.
Haga clic en el menú desplegable All operation types para cambiar las operaciones que desea perfilar. El Generador de perfiles de consultas muestra todos los tipos de operaciones de forma predeterminada.
Identificar consultas lentas.
Haga clic en un punto del diagrama de dispersión. Se abrirá un panel derecho con información resumida.
Haga clic en View more details en el panel del lado derecho para ver la forma completa de la consulta, las estadísticas de ejecución detalladas, el registro de consultas y sugerencias de mejora.
Haga clic y arrastre a lo largo de los ejes
XyYpara ampliar un subconjunto específico de datos recopilados.Desplácese hacia abajo hasta la tabla debajo del gráfico para ver una lista de consultas lentas por colección. Haga clic en una fila de la tabla para obtener más detalles.
Interpretar métricas de rendimiento.
Al inspeccionar una consulta lenta, comience por observar estas métricas y patrones clave:
Operation Execution Time (
millis): Tiempo de consulta en milisegundos. Este es el principal indicador de una consulta lenta. Si esta métrica se mantiene alta, considere optimizar la lógica de la consulta, procesar los resultados por lotes o replantear cómo se accede a los datos.Si ve
"planSummary": "COLLSCAN":en el registro de query, la query realizó un escaneo de colección y no usó ningún índice. Esto es una fuerte señal para agregar un índice o reescribir la query.Docs Examined (
docsExamined): Número de documentos que MongoDB inspeccionó para la consulta. Si Docs Examined es significativamente mayor que Docs Returned, esto suele significar que:La consulta escaneó muchos documentos para encontrar los resultados, lo que podría afectar la latencia de la red y el rendimiento de la aplicación.
Los índices existentes son ineficientes o no son óptimos para esta consulta específica. Para obtener más información, consulte Índices.
Keys Examined
keysExamined(): Número de claves de índice analizadas para la consulta. Si esta métrica es0para una consulta que incluye condiciones de filtro, es muy probable que no haya índice y que MongoDB haya analizado toda la colección. Esta es una de las principales causas de lentitud. Si Docs Examined es muy alto y es Keys Examined0o muy bajo en comparación con, es probable que Docs Examined esté analizando la colección o un índice muy poco selectivo. Para obtener más información, consulte Índices.Un Docs Examined : Returned Ratio alto significa que la consulta está escaneando muchos documentos para devolver pocos resultados, lo que puede ser un signo de una consulta ineficiente o de índices faltantes.
Num Yields (
numYields): Los rendimientos frecuentes sugieren contención de recursos u operaciones de larga duración que se encuentran en pausa, lo que potencialmente afecta el rendimiento general.Response LengthLas longitudes de respuesta inusualmente largas indican que las consultas devuelven más datos de los necesarios. Considere usar proyecciones para limitar los campos devueltos.
Has Index Coverage
usedIndex(): Este valor booleano confirma si se utilizó un índice de MongoDB. Si se establece enfalsepara una consulta que debe indexarse, se añade un índice.Nota
Esta métrica no refleja el uso del índice de búsqueda de MongoDB.
Si
hasSortse establecetrueen, esto indica que la consulta contiene unsort()método. Lossort()métodos no indexados pueden consumir muchos recursos. Revise la configuración de su índice de búsqueda y confirme si admite elsort()método.