[PYTHON] Berechnen Sie die CPU-Auslastung einer Domain mit libvirt

How do I calculate %CPU in my own libvirt programs?

Übrigens scheint Qiita in der Lage zu sein, die Notation $ \ LaTeX $ zu verwenden.

libvirt verfügt nicht über eine Methode, um die CPU-Auslastung der Domäne direkt abzurufen. Gemäß dem obigen Artikel kann die Auslastung jedoch anhand der CPU-Auslastungszeit berechnet werden. Das Folgende ist die Geschichte von libvirt-python.

Die Dokumentation wird vorbereitet. http://libvirt.org/docs/libvirt-appdev-guide-python/en-US/html/index.html

Stellen Sie zunächst eine Verbindung zu libvirtd her.

import libvirt

con = libvirt.openReadOnly()
dom0 = con.listAllDomains()[0]

dom0 ist die Domain.

Mit dom0.info () können Sie ermitteln, wie viele Sekunden die CPU seit dem Start der Domain verwendet wurde ($ cpuTime $). Die Datenstruktur lautet virDomainInfo. Fünfter Wert.

cpuTime = dom0.info()[4]

Wenn Sie dies alle $ t $ Sekunden erhalten, wird die CPU-Auslastung der Domäne sein

\frac{cpuTime_{now} - cpuTime_{now-t}}{t \times nrCores \times 10^9}\times 100

$ nrCores $ gibt die Anzahl der physischen Kerne im System an und kann mit con.getInfo () (virNodeInfo) abgerufen werden. ..

Wenn Sie die CPU-Auslastungsrate für jeden Kern wissen möchten, können Sie mit dom0.vcpus () die CPU-Auslastungszeit für jeden Kern abrufen (virVcpuInfo). -libvirt-domain.html # virVcpuInfo)). In diesem Fall ist $ nrCores $ 1 oder 2, wenn Hyperthreading funktioniert.

Recommended Posts

Berechnen Sie die CPU-Auslastung einer Domain mit libvirt
Domaincheck mit Python
Berechnen Sie tf-idf mit scikit-learn
[MCMC] WAIC mit Pystan berechnen