Medición del porcentaje de robo de CPU en hipervisores VMware e Hyper-V

Medición del porcentaje de robo de CPU en hipervisores VMware e Hyper-V

Para los huéspedes de Xen Linux, %stealel tiempo está disponible a través de top y otras utilidades.

¿Es posible obtener esta y otras métricas relacionadas desde un huésped de Linux cuando se ejecuta un hipervisor que no sea Xen, como ESXi o Hyper-V?

Para los invitados de Windows, tanto VMware como Microsoft proporcionan contadores de rendimiento. Ejemplo: rendimiento de vmware

Pero estos no parecen estar expuestos a través de Vanilla topen Centos 6.4.

Respuesta1

La única forma de obtener estos (y más) contadores de rendimiento dentro de un invitado de VMware es mediante el uso del SDK de VMGuestLib tal como se envía con vmware-tools.

Escribí un contenedor de Python para esta biblioteca, llamado python-vmguestlib y una herramienta vmguest-stats para obtener acceso a estos contadores. Y ahora hay tres complementos de Dstat para correlacionar estos contadores de rendimiento con otros recursos del sistema. Es tan simple como:

dstat -c –vm-cpu -m –vm-mem –vm-mem-adv

Puede encontrar el contenedor de Python, la herramienta vmguest-stats y Dstat en:

¡Se agradecen comentarios y mejoras!

Respuesta2

El clúster de vSphere en funcionamiento está sobrecargado, pero la herramienta de medición habitual de Zabbix no indicaba el tiempo de robo de CPU. Muchas gracias a Dag. Tomé su programa de prueba y escribí un script solo para imprimir el porcentaje de robo de la siguiente manera.

#!/usr/bin/python

import sys, os, time
sys.path.append(os.path.join('/root/dagwieers/vmguestlib/'))

from vmguestlib import VMGuestLib

gl = VMGuestLib()

gl.UpdateInfo()
stolen_ms_1 = gl.GetCpuStolenMs()

time.sleep(1)

gl.UpdateInfo()
stolen_ms_2 = gl.GetCpuStolenMs()

# print percentage of stolen time
print '%d' % ((stolen_ms_2 - stolen_ms_1) / 10)

gl.CloseHandle()

confirmó lo que pensaba: ¡a menudo pierdo el 75% del tiempo de mi CPU!

Respuesta3

Según tengo entendido, estás contando el total de milisegundos robados.

En este punto, usted sabe poco sobre el impacto del robo.

Si calcula los milisegundos robados divididos por la cantidad de VM, obtendrá los milisegundos robados por VM.

Luego, al dividir los milisegundos robados por los milisegundos reales en los que se aplica el valor robado (el intervalo de conteo de los milisegundos robados), obtendrá el porcentaje de tiempo que una máquina virtual ha sido robada (en promedio).

Entonces el cálculo sería % robado por VM = hurtms / #VMsOn / intervaloms

información relacionada