ESXTOP. Diagnosticar problemas de rendimiento en el almacenamiento en ESXi

By on

El objetivo de este post es ayudar a descubrir posibles problemas de rendimiento a nivel de disco en nuestro entorno virtualizado con VMware.

Esto nos permitirá descubrir e identificar si alguna máquina virtual debe ser migrada a otro Datastore con mejor rendimiento o capaz de asumir los IOPS (operaciones de entrada o salida de disco por segundo), que está demandando dicha máquina virtual. O por el contrario, deberemos realizar un análisis de la máquina virtual a nivel de Sistema Operativo para descubrir el motivo de dicho comportamiento.

Paso 1.

Acceder vía SSH con una herramienta como putty.exe (https://putty.org/ ) al servidor con ESXi para ejecutar los comandos necesarios. Si no tenemos el acceso por SSH habilitado debemos acceder vía DCUI con privilegios de root y habilitarlo así:

Paso 2.

Una vez que hemos accedido al servidor ESXi vía SSH con putty, ejecutamos el comando esxtop.

Por defecto aparecen parámetros referentes a la CPU, pero si introducimos el parámetro “v”, cambiamos a otra pantalla donde podemos monitorizar en tiempo real los parámetros referentes al almacenamiento por máquina virtual.

Las columnas que aparecen son las siguientes:

  • CMDS: Es la cantidad de comandos por segundo e incluye las IOPS (operaciones de entrada/salida por segundo).
  • Read: Es la cantidad de comandos de lectura por segundo.
  • Write: Es la cantidad de comandos de escritura por segundo.

En este ejemplo vemos como una máquina virtual está realizando 5.296 operaciones (883 de lectura y 4.413 de escritura) por segundo. Este valor no es normal y puede producir que el resto de máquinas virtuales que están alojadas en ese Datastore, tengan problemas de rendimiento a causa del uso intensivo de disco.

Aquí os facilitamos un enlace donde se explica cómo calcular los IOPS de nuestro almacenamiento en función del tipo de disco, del tipo de RAID y en función del número de discos empleados: http://www.ryanfrantz.com/posts/calculating-disk-iops/

Paso 3.

La solución más inmediata y que sólo afectará a la máquina virtual,que nos está causando el problema, es limitar el número de IOPS máximo que puede alcanzar. Esto podemos hacerlo mediante viclient o mediante el vsphere web client (en flash o HTML5), dependiendo de la version al host o al vCenter, en caso de tenerlo instalado:

Editamos las características de la máquina virtual y en el apartado disco, en la opción límite de disco, elegimos un valor como por ejemplo 500.

 

Esta opción es totalmente manual, es decir, debemos pasar por todas nuestras máquinas virtuales y configurar dicho parámetro una a una.

En cambio, para aquellos afortunados que disponen de la versión de ESXi Enterprise Plus, pueden usar a nivel de Datastore una funcionalidad llamada Storage I/O Control que de forma automática establece un valor de 1000 IOPS para cada una de las máquinas virtuales alojadas en dicho Datastore.

Espero que esta información os haya resultado útil.