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.