Как я могу получить загрузку ЦП виртуальной машины (KVM)

Как я могу получить использование процессора vm в KVM, например virt-manager? virt-manager отслеживает использование процессора виртуальной машины

Libvirt не предоставляет API.

Кто-нибудь знает, как получить использование vm cpu от хоста?


person dommgifer    schedule 25.03.2016    source источник


Ответы (2)


Если у вас есть доступ к серверу из командной строки и у вас есть команда virsh, вы можете использовать ее для получения статистики.

Есть несколько подкоманд dom*, которые дают вам доступ к различным вещам:

domifstat domain interface-device
       Get network interface stats for a running domain.

dommemstat domain [--period seconds] [[--config] [--live] | [--current]]
       Get memory stats for a running domain.


domstats [--raw] [--enforce] [--backing] [--state] [--cpu-total] [--balloon] [--vcpu] [--interface] [--block]
   [[--list-active] [--list-inactive] [--list-persistent] [--list-transient] [--list-running] [--list-paused]
   [--list-shutoff] [--list-other]] | [domain ...]
       Get statistics for multiple or all domains. Without any argument this command prints all available statistics for
       all domains.

Итак, вы можете:

#virsh domstats --cpu-total server1
Domain: 'server1'
  cpu.time=144940157444
  cpu.user=65260000000
  cpu.system=14450000000

Путем опроса можно получить нужные данные.

Прочтите справочную страницу на virsh для более подробной информации.

редактировать: обратите внимание, что virsh - это просто тонкая оболочка вокруг API libvirt - и эти данные также доступны через вызовы API

person Fred Clift    schedule 30.03.2016

Если вы используете c или c++, вы можете попробовать просмотреть virDomainGetCPUStats, основанный на C API. Однако, если вы используете Java, вам не повезет.

person MidTierDeveloper    schedule 25.10.2016