如何获取VM(KVM)的CPU使用率

时间:2016-03-25 07:17:01

标签: virtual-machine kvm getrusage vcpu

如何在KVM中获取vm的cpu使用情况,比如virt-manager? virt-manager monitoring vm cpu usage

Libvirt没有提供API。

有谁知道如何从主机获取vm cpu使用率?

2 个答案:

答案 0 :(得分: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只是libvirt api的一个薄包装 - 这个数据也可以通过api调用获得

答案 1 :(得分:0)

如果您使用c或c ++,您可以尝试查看基于C API的virDomainGetCPUStats。但是,如果你使用Java,你将不会获得太多运气。