Gestion de energia en servidores VMware ESXi

Los servidores ESXi tiene diferentes posibilidades a la hora de configurar las opciones de energía, las cuales se fundamentan principalmente en el uso de los estados del procesador llamados P-States y C-States.

Performance states o P-States

Los procesadores modernos tienen la capacidad de trabajar a diferentes frecuencias y voltajes. Esto es, un procesador a 2.8 Ghz puede funcionar a frecuencias por debajo de ese valor, ademas de utilizar menores voltajes, lo que conlleva un menor consumo de energía así, una reducción en el calor generado y una teórica mayor vida útil de los componentes.

De esta forma, podría considerar a los P-States como parejas de frecuencia-voltaje que un procesador soporta. P0 sería la máxima frecuencia y P1, P2, P3,... las sucesivas.

Sin embargo, la contrapartida es una reducción en el rendimiento debido a la menor frecuencia y voltage.
Para ello se han desarrollado ciertos automatismos que hacen que un procesador aumente o reduzca su P-State en función de la carga de trabajo que lleva y asi reducir el impacto en el rendimiento.

Existe una posibilidad soportada por algunos procesadores aun mas modernos llamada Turbo Boost que consiste en una especie overclocking automático de los mismos, también de forma dinámica con respecto a las necesidades del sistema.

C-States

Los C-States también son estados del procesador que actúan cuando un procesador está ocioso, lo que permite apagar o desconectar partes del mismo y reducir los voltajes.

De esta forma cuanto mas profundo sea el C-State de un procesador, también mas ahorro pero implican una recuperación mas lenta. Los niveles de C-States mas altos afectan menos al rendimiento y su vuelta atras a trabajar a pleno funcionamiento es mas rápida y efectiva.

states

Vale, pero ¿quien gestiona esto?

Los servidores suelen incluir en BIOS diversos perfiles de energía que podemos elegir para configurarlo. De esta forma es habitual encontrarnos con estos perfiles:

  • Uno de máximo rendimiento el cual desactiva esto ahorros de energía
  • Un perfil balanceado
  • Un perfil de ahorro de energía
  • La posibilidad de elegir manualmente las opciones.

Pero también es posible configurar la BIOS de tal manera que se ceda el control al sistema operativo.
Segun el hardware debemos buscar una opcion en BIOS llamada "power management" o similar y configurarlo como "OS control mode" o algo parecido para que VMware en este caso sea el encargado de manejar todo esto.

VMware

Una vez hecho, es posible desde VMware elegir entre 3 perfiles preestablecidos.

El perfil de High Performance, el cual hace que los procesadores trabajen siempre a su máxima frecuencia (sin P-states) y solo utilicen los 2 C-States superiores, que no afectan casi nada al rendimiento (C0 y C1/C1E o autohalt).

El perfil Balanced, es el perfil por defecto en esxi 5.X y recomendado por VMware en entornos "normales". En este perfil sí se hace uso de los P-States aunque no de los C-States inferiores.
Esto ha cambiado en esxi 5.5, donde el perfil balanced sí hace uso de los C-States inferiores (C3 / C6).

El perfil low power en esxi 5.X agrega el uso de los C-States inferiores (C3 / C6).
Si miramos las recomendaciones de vmware, en entornos habituales se recomienda usar Balanced, asi como configurar las BIOS de los servidores para que esxi pueda "ver" todos los C-States (esto se puede limitar a nivel de BIOS).

¿Que es lo recomendable?

VMware recomienda como normal general el uso del perfil Balanced y aseguran que el ahorro de energía no perjudica notablemente al rendimiento de las maquinas virtuales.

Sin embargo, en entornos que ellos llaman de "Latency-Sensitive Workloads", recomiendan directamente deshabilitar el ahorro de energia en BIOS o bien usar High Performance.

Igualmente, en clusters de baja importancia o de desarrollo se podría plantear el uso del low profile.

Al final de todo la decisión tendrá en un lado de la balanza el rendimiento y un nivel de riesgo teórico menor (eliminación o reducción de una capa de automatización en la gestión de la energía) y en el otro al ahorro de energia y la también teórica mayor vida de los componentes.

La cantidad de energía que se puede llegar a ahorrar es mas difícil de determinar porque depende de la carga del sistema y del hardware usado.

Enlaces