[PYTHON] Calculer l'utilisation du processeur d'un domaine avec libvirt

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

À propos, Qiita semble être capable d'utiliser la notation $ \ LaTeX $.

libvirt n'a pas de méthode pour obtenir directement l'utilisation du processeur du domaine, mais selon l'article ci-dessus, il semble que l'utilisation puisse être calculée à partir du temps d'utilisation du processeur. Voici l'histoire de libvirt-python.

La documentation est en cours de préparation. http://libvirt.org/docs/libvirt-appdev-guide-python/en-US/html/index.html

Tout d'abord, connectez-vous à libvirtd.

import libvirt

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

«dom0» est le domaine.

Avec dom0.info (), vous pouvez obtenir combien de secondes le CPU a été utilisé depuis le démarrage du domaine ($ cpuTime $). La structure de données est virDomainInfo. Cinquième valeur.

cpuTime = dom0.info()[4]

Si vous obtenez cela toutes les $ t $ secondes, l'utilisation du processeur du domaine sera

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

$ nrCores $ indique le nombre de cœurs physiques dans le système et peut être obtenu avec con.getInfo () (virNodeInfo) ..

Si vous voulez connaître le taux d'utilisation du processeur pour chaque cœur, vous pouvez utiliser dom0.vcpus () pour obtenir le temps d'utilisation du processeur pour chaque cœur (virVcpuInfo. -libvirt-domain.html # virVcpuInfo)). Dans ce cas, $ nrCores $ vaut 1 ou 2 si l'hyperthreading fonctionne.

Recommended Posts

Calculer l'utilisation du processeur d'un domaine avec libvirt
Vérification de domaine avec Python
Calculer tf-idf avec scikit-learn
[MCMC] Calculer WAIC avec pystan