Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Supervisar y mejorar consultas lentas

El Performance Advisor supervisa cualquier operación con un predicado de query que MongoDB considera lentas y sugiere nuevos índices para mejorar el rendimiento de las consultas. Para el host y el período de tiempo seleccionados, el Performance Advisor evalúa hasta las 20,000 consultas lentas más recientes encontradas en los registros.

Los índices recomendados incluyen queries de muestra, agrupadas por forma del query, que se ejecutaron en una colección que se beneficiaría del índice sugerido. Performance Advisor no afecta negativamente el rendimiento de sus clústeres de Cloud Manager.

También puedes supervisar la latencia de query a nivel de colección con Query Insights.

Nota

Para ver el Performance Advisor, debe:

  • Sé un usuario Premium de la Nube.

  • Ejecuta MongoDB versión 3.2 o posterior en tu clúster.

  • Gestione su clúster con la Automatización de MongoDB Agent.

    Para más información sobre el MongoDB Agent, consulta MongoDB Agent.

Para ver los valores de campo en las consultas de ejemplo, debes ser un usuario de Cloud Manager con uno o más de los siguientes roles:

Los usuarios sin los roles mencionados no pueden ver los valores del campo.

Importante

Privilegios requeridos

Para activar Performance Advisor para un proyecto, debes tener el rol Project Owner para el proyecto.

Performance Advisor está habilitado por defecto. Para desactivar o activar Performance Advisor:

1
  1. 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.

  2. Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.

  3. En la barra lateral, haga clic en Project Settings.

    La página Configuración del proyecto se muestra.

2

Si un query es lento, entre los motivos más frecuentes, se incluyen los siguientes:

  • El query no es compatible con los índices actuales.

  • Algunos documentos de la colección tienen grandes campos de arreglo que resultan complejos de buscar e indexar.

  • Un query recupera información de varias colecciones con $lookup.

Los índices mejoran el rendimiento de lectura, pero un gran número de índices puede afectar negativamente el rendimiento de escritura, ya que los índices deben actualizarse durante las escrituras. Si la colección ya tiene varios índices, ten en cuenta esta compensación de rendimiento de lectura y escritura a la hora de decidir si creas nuevos índices. Analiza si un query para una colección de este tipo puede modificarse para aprovechar los índices existentes, así como si el query se produce con la frecuencia suficiente como para justificar el costo de un nuevo índice.

El Performance Advisor puede ayudar a identificar y remover índices innecesarios. Para obtener más información, consulta Revisar las recomendaciones de índice de descartar.

Para acceder a Performance Advisor:

1
  1. 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.

  2. Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.

  3. En la barra lateral, haz clic en Processes en la sección Database.

Se muestra la página Procesos.

2

Si el set de réplicas es parte de un clúster, primero haz clic en el clúster que contiene el set de réplicas.

3
4

El Performance Advisor obtiene recomendaciones de índice de las últimas 24 horas.

  • Si el Performance Advisor tiene recomendaciones, hacer clic en el botón View Recommendations de la sección Create Indexes.

  • Si el Performance Advisor no tiene recomendaciones, para buscar las recomendaciones del índice de los últimos 5 días, hacer clic en Explore Recommendations en la sección Create Indexes.

El Performance Advisor clasifica los índices según su Impact, que se basa en el total de bytes desperdiciados leídos por las operaciones asociadas. Para obtener más información sobre la clasificación de los índices, se puede consultar la revisión de la clasificación de los índices.

5

Se pueden filtrar los resultados mediante cualquiera de las siguientes opciones:

  • Filter by shards and hosts

  • Filter by namespace

  • Filter by time range

  • Filter by date and time

Nota

Si el registro de consultas lentas contiene etapas $match consecutivas en el pipeline de agregación, las dos etapas pueden fusionarse en la primera etapa $match y dar como resultado una sola etapa $match. Como resultado, la forma del query en el Performance Advisor puede diferir del query real que se ejecutó.

El Performance Advisor clasifica los índices según su Impact, que se basa en el total de bytes desperdiciados leídos por las operaciones asociadas. Para obtener más información sobre cómo el Performance Advisor clasifica los índices, se puede consultar Revisión de la clasificación de los índices.

Para aprender a crear los índices que sugiere Performance Advisor, consulta Crear índices sugeridos.

Cada índice que sugiere el Performance Advisor contiene las siguientes métricas. Estas métricas se aplican específicamente a los queries que el índice mejoraría:

Métrica
Descripción

Execution Count

Número de queries ejecutados por hora que se mejorarían.

Average Execution Time

Tiempo promedio actual de ejecución en milisegundos de los queries afectados.

Average Query Targeting

Número promedio de documentos leídos por documento devuelto por los queries afectados. Una puntuación más alta de segmentación de queries indica un mayor grado de ineficiencia. Para obtener más información sobre la segmentación de queries, consulta Segmentación de queries.

In Memory Sort

Número actual de queries afectados por hora que había que ordenar en la memoria.

Average Docs Scanned

Número promedio de documentos escaneados.

Average Docs Returned

Número promedio de documentos devueltos.

Avgerage Object Size

Tamaño promedio de los objetos.

Para cada índice sugerido, Performance Advisor muestra las formas del query que se ejecutan con más frecuencia y que el índice mejoraría. Para cada forma del query, Performance Advisor muestra las siguientes métricas:

Métrica
Descripción

Execution Count

Número de queries ejecutados por hora que coinciden con la forma del query.

Average Execution Time

Tiempo promedio de ejecución en milisegundos para queries que coinciden con la forma del query.

Average Query Targeting

Número promedio de documentos leídos por cada documento devuelto por queries coincidentes. Una puntuación más alta de segmentación de queries indica un mayor grado de ineficiencia. Para obtener más información sobre la segmentación de queries, consulta Segmentación de queries.

Average Docs Scanned

Número promedio de documentos escaneados.

Average Docs Returned

Número promedio de documentos devueltos.

Performance Advisor también muestra cada query de muestra ejecutada que coincide con la forma del query, con métricas específicas para ese query.

Cada sugerencia de índice incluye una puntuación de Average Query Targeting que indica cuántos documentos se han leído por cada documento devuelto para las formas del query correspondientes del índice. Una puntuación de 1 representa formas del query muy eficaces porque cada documento leído coincidía con el query y se devolvía con los resultados del query. Todos los índices sugeridos representan una oportunidad para mejorar el rendimiento de los query.

Por defecto, Performance Advisor sugiere índices para todos los clústeres de la implementación. Para mostrar solo los índices sugeridos de una colección específica, usa el menú desplegable Collection de la parte superior de Performance Advisor.

También puedes ajustar el rango de tiempo que Performance Advisor tiene en cuenta al sugerir índices mediante el menú desplegable Time Range en la parte superior de Performance Advisor.

El Performance Advisor no puede sugerir índices para bases de datos de MongoDB configuradas para utilizar el formato de marca de tiempo ctime. Como solución alternativa, configura el formato de marca de tiempo para estas bases de datos como iso8601-utc o iso8601-local.

Puedes crear índices sugeridos por Performance Advisor directamente dentro del propio Performance Advisor. Al crear índices, ten en cuenta la proporción entre lecturas y escrituras en la colección de destino. Los índices tienen un costo en el rendimiento, pero valen la pena si se realizan queries frecuentes sobre grandes conjuntos de datos. Para aprender más sobre estrategias de indexación, consulta Estrategias de indexación.

  • Solo se puede crear un índice a la vez a través del Performance Advisor. Si se desea crear más de forma simultánea, se puede hacerlo usando el Explorador de datos o la shell

  • Cloud Manager siempre crea índices en el nivel superior de la implementación. Si creas un índice mientras ves el Performance Advisor para una sola partición en un clúster fragmentado, Cloud Manager crea ese índice para todo el clúster fragmentado.

Para crear un índice sugerido:

1

El Performance Advisor abre el diálogo Create Index y rellena previamente la Fields según el índice que hayas seleccionado.

2
{ <option1>: <value1>, ... }

Ejemplo

En el siguiente documento de opciones, se especifica la opción unique y name para el índice:

{ unique: true, name: "myUniqueIndex" }
3

Utiliza la intercalación para especificar reglas específicas del lenguaje para la comparación de string, como reglas para mayúsculas y tildes. El documento de intercalación contiene un campo locale que indica el código de localización de ICU, y puede contener otros campos para definir el comportamiento de la intercalación.

Ejemplo

En el siguiente documento de opciones de intercalación, se especifica un valor de localización de fr para una intercalación en francés:

{ "locale": "fr" }

Para revisar la lista de localizaciones que MongoDB admite para la intercalación, consulta la lista de lenguajes y localizaciones. Para aprender más sobre las opciones de intercalación, lo que incluye cuáles están activadas por defecto para cada localización, consulta Intercalación en el manual de MongoDB.

4

Advertencia

Debido a un problema crítico SERVER-68925, las implementaciones de Cloud Manager que utilizan ciertas versiones del MongoDB Agent no deberían realizar construcciones automáticas de índices giratorios en clústeres que ejecutan las siguientes versiones de MongoDB:

  • MongoDB 4.2.19-4.2.22

  • MongoDB 4.4.13-4.4.16

  • MongoDB 5.0.6-5.0.11

  • MongoDB 6.0.0-6.0.1

Puedes continuar realizando la creación manual de índices rodantes de forma segura en tus clústeres. Para realizar compilaciones automatizadas de creación de índices de forma segura, actualiza el MongoDB Agent a 12.4.0.7703 o posterior o actualiza tus clústeres a:

  • MongoDB 4.2.23 o posterior

  • MongoDB 4.4.17 o posterior

  • MongoDB 5.0.12 o posterior

  • MongoDB 6.0.2 o posterior

Importante

Las creaciones de índices rolling sólo tienen éxito cuando cumplen ciertas condiciones. Para garantizar que la creación de índices sea exitosa, evita los siguientes patrones de diseño que comúnmente desencadenan un bucle de reinicio:

La creación de índices de manera continua reduce la resiliencia de tu clúster y aumenta los tiempos de creación de índices. Solo recomendamos utilizar la creación de índices continua cuando la creación de índices regular no satisface tus necesidades.

Nota

Data Explorer no admite la creación de índices de manera continua para implementaciones autónomas.

Construir índices de forma continua reduce el impacto en el rendimiento de la construcción de índices en sets de réplicas y clústeres. Para mantener la disponibilidad del clúster, Cloud Manager remueve un nodo del clúster cada vez, comenzando por un secundario.

Después de crear un índice de forma continua, si tu base de datos MongoDB se ejecuta con una compatibilidad de características entre versiones menor que 4.2, resincroniza la base de datos principal para asegurar que la base de datos principal tenga en cuenta el nuevo índice.

Cloud Manager cancela automáticamente las creaciones de índices incrementales que no se completan con éxito en todos los nodos. Cuando una creación de índices incremental se completa en algunos nodos, pero falla en otros, Cloud Manager cancela la compilación y remueve el índice de cualquier nodo en el que se haya compilado correctamente.

En caso de que se cancele una creación de índices incremental, Cloud Manager genera un evento en la fuente de actividad y envía un correo electrónico de notificación al propietario del Proyecto con la siguiente información:

  • Nombre del clúster en el que falló la creación de índices en curso

  • Namespace en el que falló la creación de índices en curso

  • Proyecto que contiene el clúster y el namespace

  • Organización que contiene el proyecto

  • Enlace al evento de la fuente de actividad

Para aprender más sobre la recompilación de índices, consulta Crear un índice en sets de réplicas.

Nota

Las siguientes opciones de índice son incompatibles con la creación de índices de forma continua:

Cloud Manager ignora estas opciones si las especificas en el panel Options.

5
6

Importante

Cuando se completa una creación de índices, Cloud Manager genera un evento de la fuente de actividad y envía un correo electrónico de notificación al propietario del Proyecto con la siguiente información:

  • Fecha de finalización de la creación de índices

  • Nombre del clúster en el que se completó la creación de índices

  • Namespace sobre el que se completó la creación de índices

  • Proyecto que contiene el clúster y el namespace

  • Organización que contiene el proyecto

  • Enlace al evento de la fuente de actividad

Volver

Analizar consultas lentas

En esta página