2

如何在 virt-manager 等 KVM 中获取 vm 的 cpu 使用率? virt-manager 监控 vm cpu 使用情况

Libvirt 没有提供 API。

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

4

2 回答 2

4

如果您对服务器具有命令行访问权限,并且您有 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 调用获得

于 2016-03-30T14:27:33.847 回答
0

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

于 2016-10-25T19:42:24.600 回答