如何在类似virt manager的KVM中获取vm的cpu使用情况?virt管理器监视vm cpu使用
Libvirt没有提供API。
有人知道如何从主机获取vm cpu使用率吗?
如果您有对服务器的命令行访问权限,并且您有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只是libvirtApi的一个薄薄的包装器,这些数据可以通过api调用获得,也可以通过
如果您使用c或c++,您可以尝试查看基于c API的virDomainGetCPUStats。然而,如果你使用Java,你就不会有太多的运气。