Para los huéspedes de Xen Linux, %steal
el 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:
Pero estos no parecen estar expuestos a través de Vanilla top
en 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