viernes, 31 de mayo de 2013

Hyper-V Performance – Parte I - Consumo de CPU.

Aprovechando que hace poco estube en un Workshop en Microsoft sobre el rendimiento de nuestros servidores con el rol de Hyper-V, adelanto esta serie de Posts sobre "cómo medir dicho rendimiento así cómo detectar posibles cuellos de botella en nuestro entorno de virtualización".

Para empezar, me gustaría recordar este Post sobre "10 errores típicos en una revisión de salud de un entorno de Virtualización", que considero indispensable releer cada vez que me meto en un proyecto de virtualización, independientemente del tipo de Hypervisor que se vaya a utilizar.

 

0001

i) Host Processor.- Normalmente en cualquier servidor, si queremos verificar el consumo de nuestro procesador lo que haremos será cargar los siguientes contadores de rendimiento:

 

  • Processor(*)% Processor Time

  • Task Manager (ver imagen =>)

  • SystemProcessor Queue Lenght


 

Pues en nuestro caso, para saber qué consumo tiene la partición padre, que no hay que olvidar que es una máquina virtual (VM) en si misma, ya sea Hyper-V Server 2012 o Windows Server 2012 con el rol de Hyper-V, serán los mismos.

 

Veamos en que rangos de consumo de tiempo de procesador nos movemos:

0003

En el caso de que hayamos visto o intuyamos que pueda haber un problema de rendimiento en la CPU, o sea, nos hayemos en la zona de Caution o Critical, utilizaremos el contador de la Longitud de la cola del procesador, como referente inicial disponemos de la siguiente horquilla de valores que nos puede ayudar:

0002


Siempre hay que tener en cuenta que si ocurre en un momento puntual, no pasa nada. Otra cosa es que estos valores se alcancen durante un tiempo continuado. En cuanto a la horquilla de valores, éstos son orientativos, hay que saber extrapolarlos a las situaciones reales, a la carga del servidor, a los roles que tengamos instalados en el mismo, etc., no cogerlos como una regla de tres o lo que dice el KB de Microsoft va a Misa.

 

ii) Logical processor.- Para medir el total del consumo de procesador por parte del Host y todas las VM, utilizaremos los siguientes contadores de rendimiento:

  • Hyper-v Hypervisor Logical Processor(*)% Total Runtime

  • Hyper-v Hypervisor Logical Processor(*)Context Switches /Sec


% Total Runtime, con su consiguiente horquilla de valores indicativos (si os fijais son los mismos que en el punto anterior):

0003

Para el caso de los Content Switches, ocurren cuando el kernel cambia el procesador asignado de un subproceso a otro, verificaremos cuántos se producen por procesador y por segundo, con la consiguiente horquilla de valores indicativos:

0004

Cuando detectamos que estamos en zona Critical, suele venir motivado por:

  • Adaptadores del tipo Legacy Network.

  • Mal diseño de aplicaciones.

  • Drivers mal instalados.


 

ii)  Virtual processor.- Determinar el consumo de procesador de cada VM:

  • Hyper-v Hypervisor Virtual Processor(*)% Guest Runtime


Con la misma o muy parecida horquilla de valores indicativos que en el punto anterior:

0005

Como consejo final, si detectamos que Hyper-V Hypervisor Virtual Processor (_Total)% Total Run Time (Virtual Procesor Total Run Time - VPTR) está muy alto y Hyper-V Hypervisor Logical Processor (_Total)% Total Run Time (Logical Procesor Total Run Time - LPTR) es bajo, consideremos en asignar procesadores adicionales a esa VM.

El próximo día la memoria RAM.

2 comentarios:

  1. [...] con esta serie de Post sobre como medir el rendimiento de nuestros Hyper-V, despues de la CPU hoy llega la memoria [...]

    ResponderEliminar
  2. [...] con esta serie de Post sobre como medir el rendimiento de nuestros Hyper-V, despues de la CPU y la memoria RAM, hoy nos toca el [...]

    ResponderEliminar