Análisis de rendimiento de VM en VMware vSphere. Parte 3: Almacenamiento



Parte 1. Acerca de la CPU
Parte 2. Acerca de la memoria

Hoy analizaremos las métricas del subsistema de disco en vSphere. El problema con el almacenamiento es la razón más común para una máquina virtual lenta. Si en casos con CPU y RAM la solución de problemas termina en el nivel del hipervisor, entonces, con problemas de disco, es posible que deba lidiar con la red de datos y los sistemas de almacenamiento.

Analizaré el tema en el ejemplo de acceso bloqueado al almacenamiento, aunque con acceso a archivos los contadores son casi iguales.

Poco de teoría


Cuando se habla del rendimiento del subsistema de disco de las máquinas virtuales, preste atención a tres parámetros relacionados:

  • número de operaciones de entrada / salida (operaciones de entrada / salida por segundo, IOPS);
  • ancho de banda (rendimiento);
  • latencia de las operaciones de entrada / salida (latencia).

El número de IOPS suele ser importante para cargas de trabajo aleatorias: acceso a bloques en el disco ubicados en diferentes lugares. Las bases de datos, las aplicaciones comerciales (ERP, CRM), etc. pueden servir como ejemplo de dicha carga.

El rendimiento es importante para cargas secuenciales: acceso a bloques ubicados uno después del otro. Por ejemplo, los servidores de archivos (pero no siempre) y los sistemas de videovigilancia pueden generar tal carga.

El rendimiento está relacionado con la cantidad de operaciones de E / S de la siguiente manera:

Rendimiento = IOPS * Tamaño de bloque , donde Tamaño de bloque es el tamaño del bloque.

El tamaño del bloque es una característica bastante importante. Las versiones modernas de ESXi permiten bloques de hasta 32,767 KB de tamaño. Si el bloque es aún más grande, se divide en varios. No todos los sistemas de almacenamiento pueden funcionar eficazmente con bloques tan grandes, por lo que ESXi tiene el parámetro DiskMaxIOSize. Al usarlo, puede reducir el tamaño máximo de un bloque omitido por el hipervisor (más detalles aquí ). Le recomiendo que consulte al fabricante de los sistemas de almacenamiento antes de cambiar este parámetro, o al menos pruebe los cambios en el banco de laboratorio.

Los tamaños de bloque grandes pueden afectar negativamente el rendimiento del almacenamiento. Incluso si el número de IOPS y el rendimiento son relativamente pequeños, pueden producirse altas latencias con un gran tamaño de bloque. Por lo tanto, preste atención a este parámetro.

La latencia es el parámetro de rendimiento más interesante. La latencia de las operaciones de E / S para una máquina virtual es la suma de:

  • retrasos dentro del hipervisor (KAVG, Kernel promedio MilliSec / Read);
  • latencia dada por la red de datos y el almacenamiento (DAVG, Driver promedio MilliSec / Command).

El retraso total que es visible en el sistema operativo invitado (GAVG, Promedio de invitado MilliSec / Command) es la suma de KAVG y DAVG.

Se miden GAVG y DAVG, y se calcula KAVG: GAVG - DAVG.


Fuente

Hablemos de KAVG . En funcionamiento normal, el KAVG debería tender a cero, o al menos ser mucho más pequeño que el DAVG. El único caso que conozco cuando se espera que KAVG sea alto es el límite de IOPS en el disco VM. En este caso, cuando intente exceder el límite, KAVG aumentará.

El componente más significativo de KAVG es QAVG, el tiempo en la cola para el procesamiento dentro del hipervisor. Los componentes restantes de KAVG son insignificantes.

La cola en el controlador del adaptador de disco y la cola de la luna tiene un tamaño fijo. Para entornos con mucha carga, este tamaño puede ser útil para aumentar. Describe cómo aumentar la cola en el controlador del adaptador (al mismo tiempo, aumentará la cola a las lunas). Esta configuración funciona cuando solo una VM funciona con la luna, lo cual es raro. Si hay varias máquinas virtuales en la luna, también debe aumentar el parámetro Disk.SchedNumReqOutstanding (instrucciones aquí ). Al aumentar la cola, disminuye QAVG y KAVG, respectivamente.

Pero, nuevamente, primero lea la documentación del proveedor de HBA y pruebe los cambios en el banco de laboratorio.

El tamaño de la cola a la luna puede verse afectado por la inclusión del mecanismo SIOC (Control de E / S de almacenamiento). Proporciona acceso uniforme a la luna desde todos los servidores en el clúster al cambiar dinámicamente la cola a la luna en los servidores. Es decir, si una VM se ejecuta en un host que requiere una cantidad desproporcionada de rendimiento (VM vecina ruidosa), SIOC reduce la longitud de la cola a la luna en este host (DQLEN). Más detalles aquí .

KAVG resuelto, ahora un poco sobre DAVG . Aquí todo es simple: DAVG es el retraso introducido por el entorno externo (red de datos y almacenamiento). Cualquier sistema de almacenamiento moderno y no tan tiene sus propios contadores de rendimiento. Para analizar problemas con DAVG, tiene sentido mirarlos. Si todo está bien en el lado de ESXi y del almacenamiento, verifique la red de datos.

Para evitar problemas de rendimiento, elija la Política de selección de ruta (PSP) adecuada para su almacenamiento. Casi todos los sistemas de almacenamiento modernos admiten PSP Round-Robin (con o sin ALUA, acceso a la unidad lógica asimétrica). Esta política le permite utilizar todas las rutas disponibles para el almacenamiento. En el caso de ALUA, solo se utilizan las rutas al controlador que posee la luna. No todos los sistemas de almacenamiento en ESXi tienen reglas predeterminadas que establecen la política Round-Robin. Si no hay una regla para su sistema de almacenamiento, use el complemento del fabricante de almacenamiento que creará la regla correspondiente en todos los hosts del clúster o cree la regla usted mismo. Detalles aquí

Además, algunos proveedores de almacenamiento recomiendan cambiar el número de IOPS por ruta del valor estándar de 1000 a 1. En nuestra práctica, esto nos permitió "exprimir" más rendimiento del almacenamiento y reducir significativamente el tiempo requerido para la conmutación por error en caso de falla o actualización del controlador. Verifique las recomendaciones del proveedor y, si no hay contraindicaciones, intente cambiar este parámetro. Detalles aquí

Contadores básicos de rendimiento del subsistema de disco de una máquina virtual


Los contadores de rendimiento del subsistema de disco en vCenter se recopilan en las secciones Almacén de datos, Disco, Disco virtual:



La sección Almacén de datos contiene métricas para el almacenamiento de discos vSphere (almacenes de datos) en los que se encuentran los discos VM. Aquí encontrará contadores estándar para:

  • IOPS (promedio de solicitudes de lectura / escritura por segundo),
  • ancho de banda (velocidad de lectura / escritura),
  • retrasos (lectura / escritura / latencia más alta).

De los nombres de los contadores, en principio, todo está claro. Una vez más, llamaré la atención sobre el hecho de que aquí las estadísticas no son para una máquina virtual específica (o disco de máquina virtual), sino general para todo el almacén de datos. En mi opinión, es más conveniente mirar estas estadísticas en ESXTOP, al menos sobre la base de que el período mínimo de medición es de 2 segundos.

La sección Disco contiene métricas para los dispositivos de bloque utilizados por la VM. Hay contadores IOPS del tipo de suma (el número de operaciones de entrada / salida por período de medición) y varios contadores relacionados con el acceso de bloque (Comandos cancelados, restablecimientos de bus). En mi opinión, esta información también es más conveniente de ver en ESXTOP.

La sección Disco virtual es la más útil en términos de resolución de problemas de rendimiento del subsistema de disco VM. Aquí puede ver el rendimiento de cada disco virtual. Esta información es necesaria para comprender si una máquina virtual en particular tiene un problema. Además de los contadores estándar para el número de operaciones de entrada / salida, volumen de lectura / escritura y retrasos, esta sección contiene contadores útiles que muestran el tamaño del bloque: tamaño de solicitud de lectura / escritura.

En la siguiente imagen, un gráfico del rendimiento del disco VM, donde puede ver la cantidad de IOPS, latencia y tamaño de bloque.



Las métricas de rendimiento también se pueden ver en todo el almacén de datos si SIOC está habilitado. Aquí hay información básica sobre latencia promedio y IOPS. Por defecto, esta información solo se puede ver en tiempo real.



ESXTOP


ESXTOP tiene varias pantallas que muestran información sobre el subsistema de disco host como un todo, máquinas virtuales individuales y sus discos.

Comencemos con información sobre máquinas virtuales. La pantalla "v" activa la pantalla "Disk VM":



NVDISK es el número de discos VM. Para ver información en cada disco, presione “e” e ingrese el GID de la VM que le interesa.

El significado de los parámetros restantes en esta pantalla es claro a partir de sus nombres.

Otra pantalla útil para la resolución de problemas es el adaptador de disco. Se llama con la tecla "d" (en la imagen a continuación, se seleccionan los campos A, B, C, D, E, G):



NPTH es el número de caminos de la luna que son visibles desde este adaptador. Para obtener información sobre cada ruta en el adaptador, presione "e" e ingrese el nombre del adaptador:



AQLEN : tamaño máximo de cola en el adaptador.

También en esta pantalla están los contadores de retraso, de los que hablé anteriormente: KAVG / cmd, GAVG / cmd, DAVG / cmd, QAVG / cmd .

La pantalla del dispositivo de disco, que se llama con la tecla "u", muestra información sobre dispositivos de bloque individuales: lunas (en la imagen a continuación, se seleccionan los campos A, B, F, G, I). Aquí puedes ver el estado de la cola a las lunas.



DQLEN : tamaño de la cola para un dispositivo de bloque.
ACTV es el número de comandos de E / S en el núcleo de ESXi.
QUED : la cantidad de comandos de E / S en la cola.
% USD - ACTV / DQLEN × 100%.
CARGA - (ACTV + QUED) / DQLEN.

Si% USD es alto, debería considerar expandir la alineación. Cuantos más equipos en la cola, mayor será el QAVG y, en consecuencia, KAVG.

También puede ver en la pantalla del dispositivo de disco si el VAAI (vStorage API for Array Integration) se está ejecutando en el almacenamiento. Para hacer esto, seleccione los campos A y O.

El mecanismo VAAI le permite transferir parte del trabajo desde el hipervisor directamente al sistema de almacenamiento, por ejemplo, poner a cero, copiar bloques o bloquear.



Como puede ver en la imagen de arriba, VAAI funciona en este sistema de almacenamiento: las primitivas Cero y ATS se usan activamente.

Consejos de optimización de disco ESXi


  • Presta atención al tamaño del bloque.
  • Establezca el tamaño de cola óptimo en el HBA.
  • Recuerde habilitar SIOC en los almacenes de datos.
  • Elija su PSP de acuerdo con las recomendaciones del fabricante.
  • Asegúrese de que VAAI esté funcionando.

Source: https://habr.com/ru/post/461127/


All Articles