Измерение % кражи ресурсов ЦП на гипервизорах VMware и Hyper-V

Измерение % кражи ресурсов ЦП на гипервизорах VMware и Hyper-V

Для гостей Xen Linux %stealвремя легко доступно через top и другие утилиты.

Можно ли получить эти и связанные с ними показатели из гостевой ОС Linux при запуске гипервизора, отличного от Xen, например ESXi или Hyper-V?

Для гостевых систем Windows и VMware, и Microsoft предоставляют счетчики perfmon. Пример: vmware perfmon

Но, похоже, они не отображаются в ванили topв Centos 6.4.

решение1

Единственный способ получить эти (и другие) счетчики производительности внутри гостевой ОС VMware — использовать VMGuestLib SDK, поставляемый с vmware-tools.

Я написал обертку python для этой библиотеки, названную python-vmguestlib, и инструмент vmguest-stats для доступа к этим счетчикам. И теперь есть три плагина Dstat для корреляции этих счетчиков производительности с другими системными ресурсами. Это так же просто, как:

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

Оболочку Python, инструмент vmguest-stats и Dstat можно найти по адресу:

Отзывы и улучшения приветствуются!

решение2

кластер vSphere на работе перегружен, но обычный инструмент измерения Zabbix не показывал время кражи ЦП. Большое спасибо Дагу, я взял его тестовую программу и написал скрипт, чтобы просто вывести процент кражи следующим образом

#!/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()

это подтвердило то, что я думал: я часто теряю 75% процессорного времени!

решение3

Насколько я понимаю, вы считаете общее количество украденных миллисекунд.

На данный момент вы мало что знаете о влиянии кражи.

Если посчитать украденные миллисекунды, разделенные на количество виртуальных машин, вы получите украденные миллисекунды на одну виртуальную машину.

Затем, разделив украденные миллисекунды на фактические миллисекунды, к которым относится украденное значение (интервал подсчета украденных миллисекунд), вы получите процент времени, в течение которого виртуальная машина была украдена (в среднем).

Таким образом, расчет будет следующим: % украденных на одну виртуальную машину = stealms / #VMsOn / intervalms

Связанный контент