Как я могу получить использование процессора ВМ (KVM)
Как я могу получить использование процессора vm в KVM как virt-manager? Вирт-менеджер мониторинг использования виртуальных процессоров
Libvirt не предоставил API.
Кто-нибудь знает, как получить использование VM CPU от хоста?
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 для более подробной информации.
edit: обратите внимание, что virsh - это просто оболочка вокруг API libvirt - и эти данные доступны также через вызовы API
Если вы используете c или C++, вы можете попытаться взглянуть на virDomainGetCPUStats, основанный на C API. Однако, если вы используете Java, вам не повезет.