Messen des CPU-Prozentsatzes auf VMware- und Hyper-V-Hypervisoren

Messen des CPU-Prozentsatzes auf VMware- und Hyper-V-Hypervisoren

Für Xen-Linux-Gäste %stealist die Zeit über Top und andere Dienstprogramme leicht verfügbar.

Ist es möglich, diese und verwandte Messdaten innerhalb eines Linux-Gastbetriebs abzurufen, wenn ein Nicht-Xen-Hypervisor wie ESXi oder Hyper-V ausgeführt wird?

Für Windows-Gäste stellen sowohl VMware als auch Microsoft Leistungsindikatoren zur Verfügung. Beispiel: VMware-Leistungsmon

topAber diese scheinen in Centos 6.4 nicht über Vanilla verfügbar zu sein .

Antwort1

Die einzige Möglichkeit, diese (und weitere) Leistungsindikatoren in einen VMware-Gast zu erhalten, ist die Verwendung des VMGuestLib SDK, das mit den VMware-Tools geliefert wird.

Ich habe einen Python-Wrapper für diese Bibliothek namens python-vmguestlib und ein Tool namens vmguest-stats geschrieben, um Zugriff auf diese Zähler zu erhalten. Und es gibt jetzt drei Dstat-Plugins, um diese Leistungsindikatoren mit anderen Systemressourcen zu korrelieren. Es ist so einfach wie:

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

Den Python-Wrapper, das Tool vmguest-stats und Dstat finden Sie unter:

Feedback und Verbesserungen sind willkommen!

Antwort2

Der vSphere-Cluster bei der Arbeit ist überlastet, aber das übliche Zabbix-Messtool hat die CPU-Steal-Zeit nicht angezeigt. Vielen Dank an Dag, ich habe sein Testprogramm genommen und ein Skript geschrieben, um den Prozentsatz der Steal-Zeit wie folgt auszudrucken

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

es hat meine Vermutung bestätigt, ich verliere oft 75 % meiner CPU-Zeit!

Antwort3

So wie ich es verstehe, zählen Sie die Gesamtzahl der gestohlenen Millisekunden.

Zu diesem Zeitpunkt wissen Sie nur wenig über die Auswirkungen von Diebstahl.

Wenn Sie die gestohlenen Millisekunden durch die Anzahl der VMs teilen, erhalten Sie die gestohlenen Millisekunden pro VM.

Wenn Sie dann die gestohlenen Millisekunden durch die tatsächlichen Millisekunden dividieren, auf die sich der gestohlene Wert bezieht (das Intervall der Zählung der gestohlenen Millisekunden), erhalten Sie den Prozentsatz der Zeit (im Durchschnitt), in der eine VM gestohlen wurde.

Die Berechnung wäre also % gestohlen pro VM = gestohlene ms / Anzahl eingeschalteter VMs / Intervall-ms

verwandte Informationen