Share via


Solucionar problemas de rendimiento de máquinas virtuales Azure en Linux o Windows

En este artículo se describe la solución de problemas genéricos de rendimiento de máquinas virtuales (VM) mediante la supervisión y observación de cuellos de botella, y se ofrecen posibles soluciones para los problemas que puedan surgir. Además de la monitorización, también puede utilizar Perfinsights, que puede proporcionar un informe con recomendaciones de mejores prácticas y cuellos de botella clave en torno a IO/CPU/Memory. Perfinsights está disponible tanto para Windows como para Linux máquinas virtuales en Azure.

Este artículo mostrará cómo utilizar la monitorización para diagnosticar cuellos de botella en el rendimiento.

Activar la supervisión

Supervisión de máquinas virtuales Azure IAAS

Para monitorizar la Guest VM, utilice Azure VM Monitoring, que le alertará de ciertas condiciones de recursos de alto nivel. Para comprobar si tiene activados los diagnósticos de VM, consulte Descripción general de los registros de recursos de Azure. Si ves lo siguiente, lo más probable es que no tengas activados los diagnósticos:

                             La captura de pantalla muestra el mensaje Monitoring may not be enabled.                                     

Habilitar el diagnóstico de máquinas virtuales a través del portal de Microsoft Azure

Para activar el diagnóstico de la máquina virtual:

  1. Ve a la VM.

  2. Haga clic en Configuración de diagnósticos.

  3. Seleccione la cuenta de almacenamiento y haga clic en Habilitar supervisión a nivel de invitado.

                                 La captura de pantalla muestra los pasos para habilitar los diagnósticos de la VM.                                     

Puede comprobar la cuenta de almacenamiento utilizada para la configuración de Diagnósticos desde la pestaña Agente en Configuración de Diagnósticos.

                             La captura de pantalla destaca la cuenta de Almacenamiento en la pestaña Agente.                                     

Activar el diagnóstico de cuentas de almacenamiento a través del portal de Azure

El almacenamiento es un nivel muy importante cuando pretendemos analizar el rendimiento IO de una máquina virtual en Azure. Para las métricas relacionadas con el almacenamiento necesitamos habilitar el diagnóstico como paso adicional. Esto también podría activarse, si sólo queremos analizar los contadores relacionados con el almacenamiento.

  1. Identifique qué cuenta (o cuentas) de almacenamiento está utilizando su máquina virtual seleccionando la máquina virtual. Haga clic en Configuración y, a continuación, en Discos:

                                 La captura de pantalla muestra el disco OS bajo discos.                                     

  2. En el portal, vaya a la cuenta (o cuentas) de almacenamiento de la máquina virtual y siga los siguientes pasos:

    1. Haga clic en la vista general de la cuenta de almacenamiento que encontró en el paso anterior.
    2. Se mostrarían las métricas por defecto.

                                 La captura de pantalla muestra las métricas por defecto en Visión general.                                     

  3. Haga clic en cualquiera de las métricas, lo que mostrará otra hoja con más opciones para configurar y añadir métricas.

                                 La captura de pantalla muestra los pasos para añadir y configurar métricas.                                     

Para configurar estas opciones:

  1. Seleccione Métricas.
  2. Seleccione el Recurso (cuenta de almacenamiento).
  3. Seleccione el Espacio de nombres
  4. Seleccione Métrico.
  5. Seleccione el tipo de Agregación
  6. Puede fijar esta vista en el salpicadero.

Observar los cuellos de botella

Una vez que hayamos completado el proceso de configuración inicial de las métricas necesarias y hayamos habilitado los diagnósticos para la máquina virtual y la cuenta de almacenamiento relacionada, podemos pasar a la fase de análisis.

Acceso a la supervisión

Seleccione la VM de Azure que desea investigar y seleccione Monitorización.

                             La captura de pantalla muestra el panel Monitorización.                                     

Plazos de observación

Para identificar si tiene algún cuello de botella de recursos, revise sus datos. Si descubre que su máquina ha estado funcionando bien, pero se ha informado de que el rendimiento se ha degradado recientemente, revise un intervalo de tiempo de datos que abarque los datos de las métricas de rendimiento antes del cambio notificado, durante y después del problema.

Compruebe si hay un cuello de botella en la CPU

                             La captura de pantalla muestra los pasos para verificar el cuello de botella de la CPU.                                     

  1. Editar el gráfico.
  2. Establezca el intervalo de tiempo.
  3. A continuación, debe añadir el contador: Porcentaje CPU SO huésped
  4. Guardar.

Cuando examine los problemas de rendimiento, sea consciente de las tendencias y comprenda si le afectan. En las próximas secciones, utilizaremos los gráficos de seguimiento del portal para mostrar las tendencias. También pueden ser útiles para establecer referencias cruzadas entre diferentes comportamientos de los recursos en el mismo periodo de tiempo. Para personalizar los gráficos, haga clic en Plataforma de datos de Azure Monitor.

Picos - Los picos podrían estar relacionados con una tarea programada/evento conocido. Si puede identificar la tarea, determine si se ejecuta al nivel de rendimiento requerido. Si el rendimiento es aceptable, puede que no sea necesario aumentar los recursos.

Pico arriba y Constante - A menudo indica una nueva carga de trabajo. Si no se trata de una carga de trabajo reconocida, active la monitorización en la máquina virtual para averiguar qué proceso (o procesos) provoca el comportamiento. Una vez reconocido el proceso, determine si el aumento del consumo se debe a un código ineficiente o al consumo normal. Si el consumo es normal, decidir si el proceso funciona al nivel de rendimiento requerido.

Constante - Determine si su VM siempre se ha ejecutado en este nivel, o si sólo se ha estado ejecutando en ese nivel desde que se han habilitado los diagnósticos. Si es así, identifique el proceso (o procesos) que causa el problema y considere la posibilidad de añadir más de ese recurso.

Aumento constante: un aumento constante del consumo suele deberse a un código ineficiente o a que el proceso está asumiendo más carga de trabajo del usuario.

Corrección de la utilización elevada de la CPU

Si su aplicación o proceso no se ejecuta en el nivel de rendimiento correcto y observa un constante de uso de la CPU del 95 %, puede realizar cualquiera de las siguientes tareas:

  • Para un alivio inmediato - Aumentar el tamaño de la VM a un tamaño con más núcleos.
  • Comprender el problema - localizar la aplicación/proceso y solucionar los problemas en consecuencia.

Si ha aumentado la VM y la CPU sigue funcionando al 95%, determine si esta opción de configuración ofrece un mejor rendimiento o un mayor rendimiento de la aplicación hasta alcanzar un nivel aceptable. Si no es así, solucione el problema de esa aplicación concreta.

Puede utilizar Perfinsights para Windows o Linux para analizar qué proceso está impulsando el consumo de CPU.

Compruebe si hay un cuello de botella en la memoria

Para ver las métricas:

  1. Añadir una sección.
  2. Añade un azulejo.
  3. Abre la Galería.
  4. Seleccione el Uso de memoria y arrástrelo. Cuando el mosaico esté acoplado, haga clic con el botón derecho y seleccione 6x4.

El uso de memoria muestra cuánta memoria está consumiendo la máquina virtual. Comprenda la tendencia y si se corresponde con el momento en el que observa problemas. Siempre deberías tener más de 100 MB de memoria disponible.

Consumo de picos y constante/constante continuo: es posible que un uso elevado de la memoria no sea la causa de un mal rendimiento, ya que algunas aplicaciones, como los motores de bases de datos relacionales, asignan una gran cantidad de memoria y este uso puede no ser significativo. Sin embargo, si hay varias aplicaciones que consumen mucha memoria, es posible que el rendimiento sea deficiente debido a la contención de memoria que provoca el recorte y la paginación/intercambio al disco. Este rendimiento deficiente suele ser una causa notable del impacto en el rendimiento de las aplicaciones.

Consumo en aumento constante - Un posible "calentamiento" de la aplicación, este consumo es común entre los motores de bases de datos que están arrancando. Sin embargo, también podría ser un signo de una fuga de memoria en una aplicación. Identifique la aplicación y comprenda si el comportamiento es el esperado.

Uso de archivos de paginación o de intercambio - Compruebe si el archivo de paginación de Windows (ubicado en D:) o el archivo de intercambio de Linux (ubicado en /dev/sdb) están siendo muy utilizados. Si no tiene nada en estos volúmenes excepto estos archivos, compruebe si hay altas lecturas/escrituras en esos discos. Este problema es indicativo de condiciones de poca memoria.

Corrección de la alta utilización de memoria

Para resolver la alta utilización de memoria, realice cualquiera de las siguientes tareas:

  • Para un alivio inmediato o uso de archivo de página o intercambio: aumente el tamaño de la VM a una con más memoria y luego supervise.
  • Comprender el problema: localizar las aplicaciones/procesos y solucionar los problemas para identificar las aplicaciones que consumen mucha memoria.
  • Si conoces la aplicación, comprueba si se puede limitar la asignación de memoria.

Si después de actualizar a una VM más grande, descubre que sigue teniendo un aumento constante hasta el 100 %, identifique la aplicación/proceso y solucione el problema.

Puede utilizar Perfinsights para Windows o Linux para analizar qué proceso está impulsando el consumo de Memoria.

Compruebe si hay un cuello de botella en el disco

Para comprobar el subsistema de almacenamiento de la máquina virtual, compruebe los diagnósticos a nivel de la máquina virtual de Azure mediante los contadores de los diagnósticos de la máquina virtual y también los diagnósticos de la cuenta de almacenamiento.

Para la solución de problemas específicos dentro de VM, puede utilizar Perfinsights para Windows o Linux, lo que podría ayudar a analizar qué proceso está impulsando las IO.

Tenga en cuenta que no disponemos de contadores para las Cuentas de Almacenamiento Redundante de Zona y Premium. Para cuestiones relacionadas con estos contadores, plantee un caso de soporte.

Visualización de diagnósticos de cuentas de almacenamiento en la supervisión

Para trabajar en los siguientes elementos, vaya a la cuenta de almacenamiento de la máquina virtual en el portal:

                             La captura de pantalla muestra los pasos para ver el Diagnóstico de la Cuenta de Almacenamiento en Monitorización.                                     

  1. Editar el gráfico de seguimiento.
  2. Establece el intervalo de tiempo.
  3. Añada los contadores descritos en los pasos siguientes.
  4. Guarde los cambios.

Para identificar problemas con el almacenamiento, observe las métricas de rendimiento del Diagnóstico de la cuenta de almacenamiento y del Diagnóstico de la máquina virtual.

Para cada una de las comprobaciones siguientes, busque tendencias clave cuando los problemas se produzcan dentro del intervalo de tiempo del problema.

Comprobar la disponibilidad del almacenamiento Azure - Añadir la métrica de la cuenta de almacenamiento: disponibilidad

Si ves una caída en la disponibilidad, podría haber un problema con la plataforma, comprueba el Estado de Azure. Si no aparece ningún problema, envíe una nueva solicitud de asistencia.

Comprobar el tiempo de espera del almacenamiento Azure - Añadir las métricas de la cuenta de almacenamiento

  • ClientTimeOutError
  • ServerTimeOutError
  • E2ELatencia media
  • Latencia media del servidor
  • TotalSolicitudes

Los valores de la métrica *TimeOutError indican que una operación IO ha tardado demasiado y se ha agotado. Los siguientes pasos le ayudarán a identificar las posibles causas.

AverageServerLatency aumenta al mismo tiempo en el TimeOutErrors podría ser un problema de la plataforma. Plantee una nueva solicitud de asistencia en esta situación.

AverageE2ELatency representa la latencia del cliente. Verifique cómo la aplicación está realizando las IOPS. Busque un aumento o una métrica TotalRequests constantemente alta. Esta métrica representa IOPS. Si estás empezando a llegar a los límites de la cuenta de almacenamiento o de un solo VHD, la latencia podría estar relacionada con el estrangulamiento.

Comprobación del estrangulamiento del almacenamiento de Azure: añada las métricas de la cuenta de almacenamiento: ThrottlingError

Los valores de estrangulamiento indican que estás siendo estrangulado a nivel de cuenta de almacenamiento, lo que significa que estás alcanzando el límite de IOPS de la cuenta. Puede determinar si está alcanzando el umbral de IOPs comprobando la métrica TotalRequests.

Ten en cuenta que cada VHD tiene un límite de 500 IOPS o 60 MBits, pero está limitado por el límite acumulativo de 20000 IOPS por cuenta de almacenamiento.

Con esta métrica, no se puede saber qué blob está causando la ralentización y cuáles se ven afectados por ella. Sin embargo, estás superando los límites de IOPS o de entrada/salida de la cuenta de almacenamiento.

Para identificar si está alcanzando el límite de IOPS, vaya a los diagnósticos de la cuenta de almacenamiento y compruebe el TotalRequests, buscando si se está acercando a los 20 mil TotalRequests. Identifique un cambio en el patrón, si ve el límite por primera vez o si este límite se produce en un momento determinado.

Con las nuevas ofertas de discos en el almacenamiento estándar, los límites de IOPS y rendimiento pueden variar, pero el límite acumulativo de la cuenta de almacenamiento estándar es de 20000 IOPS (el almacenamiento Premium tiene diferentes límites a nivel de cuenta o de disco). Más información sobre las distintas ofertas de discos de almacenamiento estándar y los límites por disco:

Referencias

El ancho de banda de la cuenta de almacenamiento se mide mediante las métricas de la cuenta de almacenamiento: TotalIngress y TotalEgress. Existen diferentes umbrales de ancho de banda en función del tipo de redundancia y de las regiones.

Compare los objetos TotalIngress y TotalEgress con los límites de entrada y salida para el tipo de redundancia de la cuenta de almacenamiento y la región.

Compruebe los límites de rendimiento de los VHD conectados a la máquina virtual. Añada las métricas VM Lectura y Escritura de Disco.

Las nuevas ofertas de discos en almacenamiento estándar tienen diferentes límites de IOPS y rendimiento (las IOPS no se exponen por VHD). Examine los datos para ver si está alcanzando los límites de rendimiento combinado de MB de los VHD a nivel de máquina virtual mediante lectura y escritura en disco y, a continuación, optimice la configuración de almacenamiento de la máquina virtual para superar los límites de un solo VHD. Más información sobre las distintas ofertas de discos de almacenamiento estándar y los límites por disco:

Corrección de la alta utilización del disco y la latencia

Reducción de la latencia del cliente y optimización de la E/S de las máquinas virtuales para superar los límites de los archivos VHD

Reducir la limitación

Si se alcanzan los límites superiores de las cuentas de almacenamiento, reequilibre los VHD entre las cuentas de almacenamiento. Consulte Objetivos de escalabilidad y rendimiento de Azure Storage.

Aumentar el rendimiento y reducir la latencia

Si tiene una aplicación sensible a la latencia y requiere un alto rendimiento, migre sus VHD al almacenamiento Azure Premium utilizando las VM de las series DS y GS.

En estos artículos se analizan las situaciones concretas:

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.