我在 Ubuntu 20.04 上使用 qemu-kvm (libvirt)。我创建了具有 8 个 CPU 的虚拟机,并在 vm 上安装了 node-exporter,在 hv 上安装了 libvirt-exporter。
虚拟机上的节点导出器表示 CPU 使用率约为 50%(使用了 8 个 CPU 中的 4 个): 公制:
(((count(count(node_cpu_seconds_total{node=~"iothub-1",job="node-exporter"}) by (cpu))) - avg(sum by (mode)(rate(node_cpu_seconds_total{mode='idle',node=~"iothub-1",job="node-exporter"}[$__rate_interval])))) * 100) / count(count(node_cpu_seconds_total{node=~"iothub-1",job="node-exporter"}) by (cpu))
但是虚拟机管理程序上的 libvirt 导出器显示了不同的情况: 公制:
rate(libvirt_domain_info_cpu_time_seconds_total{namespace="$namespace",host=~"$instance_name"}[1m])
VM 的使用率超过 500% - 5 个核心。我的虚拟机管理程序有 16 个核心。
virsh cpu 统计信息:
user@iot:~$ sudo virsh cpu-stats iothub-1 --total
Total:
cpu_time 1801252.025306000 seconds
user_time 1278780.403019000 seconds
system_time 522471.622286000 seconds
我哪里错了?我应该依赖哪个 CPU 使用率指标?
libvirt 的 CPU 使用情况包括:
因此,VCPU 运行虚拟机所用的时间 = sum(vcpu)[1...n]