KVM虚拟化中计算VM使⽤宿主机CPU的使⽤率
KVM的虚拟机在宿主机上的表现为宿主机系统的⼀个qemu-kvm进程,虚拟机以线程的⽅式调度到宿主机的物理cpu,那么如何计算虚拟机使⽤的宿主机CPU的使⽤情况?如何判断虚拟机调度到宿主机CPU的等待情况?
1、查看虚拟机等待宿主机cpu的情况
在宿主机内部执⾏:#mpstat 1 5 -P ALL
2、计算虚拟机使⽤宿主机cpu的使⽤率
通常我们计算⼀个普通的linux进程cpu使⽤率,即为进程⽤户态和内核态cpu使⽤的总和。但是对于qemu-kvm进程,我们可以这样计算:
#virsh cpu-stats domname (--total)
[root@centos7_kvm qemu]#
[root@centos7_kvm qemu]# virsh cpu-stats jason02 --total
vmware虚拟机怎么使用
Total:
cpu_time            44.989056884 seconds
user_time            0.770000000 seconds
system_time        10.950000000 seconds
这⾥不能像理解普通进程⼀样,理解为cpu_time=user_time+system_time。并且实际也证明不相等。
那怎么回事?
其实Linux是跟踪vCPU线程在⽤户空间或内核空间时间分别执⾏访客代码所花费的时间.
即:cpu_time=user_time+system_time+guest_time
因此,可以将system_time+user_time视为在主机端提供QEMU / KVM的实际开销.
并且cpu_time – (user_time+system_time)给出了客户操作系统运⾏其CPU的实际时间.
要计算CPU使⽤率,您可能只想每N秒记录⼀次cpu_time并计算两个样本之间的差值.例如,⽤法%= 100 *(cpu_time 2 – cpu_time 1)/ N.
参考:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。