El Asesor de Rendimiento supervisa cualquier operación con un predicado de consulta que MongoDB considera las consultas lentas y sugiere nuevos índices para mejorar el rendimiento de las consultas. Para el host y el período seleccionados, el Asesor de Rendimiento evalúa hasta 20 las,000 consultas lentas más recientes encontradas en los registros.
Los índices recomendados incluyen consultas de ejemplo, agrupadas por forma de consulta, ejecutadas en una colección que se beneficiaría del índice sugerido. El Asesor de Rendimiento no afecta negativamente el rendimiento de los clústeres de Ops Manager.
Nota
Para ver el Asesor de Rendimiento, debe:
Ejecute MongoDB versión 3.2 o posterior en su clúster.
Administre su clúster con MongoDB Agent Automation.
Para obtener más información sobre el Agente MongoDB, consulte Agente MongoDB.
Para ver los valores de campo en las consultas de ejemplo, debe ser un usuario de Ops Manager con uno o más de los siguientes roles:
Los usuarios sin los roles mencionados anteriormente no pueden ver los valores del campo.
Motivos frecuentes de los queries lentos
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.
Consideraciones sobre los índices
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 Asesor de Rendimiento puede ayudar a identificar y eliminar índices innecesarios. Para obtener más información, consulte "Revisar las recomendaciones para eliminar índices".
Accede a Performance Advisor
Para acceder a la Performance Advisor:
El Performance Advisor muestra hasta 20 formas de consulta en todas las colecciones del clúster e índices sugeridos para dichas formas. Los índices se clasifican según su Impact puntuación, que estima la mejora en la latencia operativa total en el clúster que su creación generaría. Para obtener más información sobre la clasificación de índices, consulte Revisar la clasificación de índices.
Sugerencias de índices
Los índices sugeridos por el Asesor de Rendimiento se ordenan según sus respectivas Impact puntuaciones. Impact indica la mejora estimada del rendimiento que aportaría el índice sugerido. Para obtener más información sobre cómo el Asesor de Rendimiento clasifica los índices, consulte Revisar la clasificación de índices.
El Asesor de rendimiento muestra un ícono de advertencia junto a cualquier índice con una puntuación Impact de 5% o mayor, lo que indica los índices con mayor potencial para mejorar el rendimiento del clúster.
Para aprender a crear índices sugeridos por el Asesor de rendimiento, consulte Crear índices sugeridos.
Métricas del índice
Cada índice sugerido por el Asesor de Rendimiento contiene las siguientes métricas. Estas métricas se aplican específicamente a las consultas que podrían mejorarse con el índice:
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. |
Queries de muestra
Para cada índice sugerido, el Asesor de Rendimiento muestra las formas de consulta más ejecutadas, que podrían mejorarse con el índice. Para cada forma de consulta, el Asesor de Rendimiento 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. |
El Asesor de rendimiento también muestra consultas de muestra individuales ejecutadas que coinciden con la forma de la consulta, con métricas específicas para esa consulta.
Segmentación de queries
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.
Sugerencias del índice de filtros
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.
Limitaciones de las sugerencias de índices
Formato de marca de tiempo para índices
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.
Tamaño del registro
El Asesor de rendimiento analiza hasta 200,000 de las líneas de registro más recientes de su clúster.
Crear índices sugeridos
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.
Comportamiento
Solo se puede crear un índice a la vez a través del Asesor de Rendimiento. Si desea crear más simultáneamente, puede hacerlo mediante el Explorador de Datos o el shell.
Los índices creados en el Asesor de Rendimiento siempre se crean en el nivel superior de la implementación. Si crea un índice mientras visualiza el Asesor de Rendimiento para un único fragmento de un clúster fragmentado, Ops Manager lo crea para todo el clúster fragmentado.
Procedimiento
Para crear un índice sugerido:
(Opcional) Especifica las opciones de índice.
{ <option1>: <value1>, ... }
Ejemplo
En el siguiente documento de opciones, se especifica la opción unique y name para el índice:
{ unique: true, name: "myUniqueIndex" }
(Opcional) Configura las opciones de intercalación.
Utilice la intercalación para especificar reglas específicas del idioma para la comparación de cadenas, como las reglas para mayúsculas y minúsculas y tildes. El documento de intercalación contiene un locale campo que indica el código de configuración regional de la UCI., y puede contener otros campos para definir el comportamiento de 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.
(Opcional) Activa la compilación de índices de forma continua.
Advertencia
Debido al problema crítico SERVER-,68925 las implementaciones de Ops Manager que usan ciertas versiones del Agente MongoDB no deberían realizar compilaciones de índices rotativos automáticos 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.0.11.7606 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
La creación de índices continuos solo se realiza correctamente cuando se cumplen ciertas condiciones. Para garantizar el éxito de la creación de su índice, evite los siguientes patrones de diseño que suelen desencadenar un bucle de reinicio:
La clave de índice supera el límite de clave de índice.
El nombre del índice ya existe
Índice en más de un campo de arreglo.
Índice de la colección que tiene el mayor número de índices de texto.
Índice de texto en la colección que tiene el mayor número de índices de texto.
Nota
Data Explorer no admite la creación de índices de manera progresiva para implementaciones independientes.
La creación de índices de forma continua reduce el impacto en el rendimiento de la creación de índices en conjuntos de réplicas y clústeres fragmentados. Para mantener la disponibilidad del clúster, Ops Manager elimina un nodo del clúster a la vez, comenzando por uno secundario.
Después de crear un índice de manera continua, si su base de datos MongoDB se ejecuta con un FCV menor 4.2 que, vuelva a sincronizar la base de datos principal para asegurarse de que tenga en cuenta el nuevo índice. Si su base de datos MongoDB se ejecuta con un FCV 4.2menor que, vuelva asincronizar la base de datos principal para asegurarse de que tenga en cuenta el nuevo índice.
Ops Manager cancela automáticamente las compilaciones de índices continuos que no se ejecutan correctamente en todos los nodos. Cuando una compilación de índice continuo se completa en algunos nodos, pero falla en otros, Ops Manager cancela la compilación y elimina el índice de los nodos en los que se creó correctamente.
En caso de cancelación de una compilación de índice continuo, Ops Manager genera un evento de 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:
Ops Manager ignora estas opciones si las especifica en el panel Options.
En el Confirm Operation cuadro de diálogo, confirme su índice.
Importante
Cuando se completa la creación de un índice, Ops Manager genera un evento de 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