VMware CPU 调度及性能监控简介
作者:张恋
来自社区专栏“平台人生”:http://www.talkwithtrend.com/Column/detail/id/11
CPU调度
在VMware vSphere 环境中,同一台主机上会运行很多台虚拟机,为了预防虚拟机出现分配不到足够CPU资源的情况,我们必须知道如何去监控主机和虚拟机的CPU使用情况。同时为了解决这些问题,我们也必须了解一些常见的处理办法。首先我们看一下CPU调度中都做了哪些事。
1、将虚拟CPU(vCPU)调度到物理CPU上。
2、加强CPU调度使用算法。
3、支持对称多处理(SMP,symmetric multiprocessing)虚拟机
4、对于SMP虚拟机采用松弛协同调度策略。
虚拟机分配的是虚拟CPU(vCPU),vCPU本身没有运算能力,只有被调度到物理CPU上时才能进行计算。不考虑其他因素影响,在主机CPU资源充足的情况,虚拟机的分配的vCPU越多,则它的性能越好。但随着虚拟机数量的增加或配置提高,主机CPU资源紧张,虚拟机的性能及稳定性可能会受影响,这时主机会将物理CPU划分时间片,分时调度vCPU以满足需求。
对于SMP虚拟机,VMkernel采用协同调度(co-scheduling)提高SMP虚拟机的运行效率,SMP虚拟机上的所有vCPU要么一起被调度,要么一起等待。这些vCPU将调度在不同的物理CPU上,CPU的负载和性能不尽相同,各个vCPU之间难免会产生偏差(skew),为了平衡这种偏差VMkernel采用松弛协同调度(relaxed co-scheduling)的策略,它能缩小各vCPU之间的偏差,达到共同调度的效果,但是整个协同调度过程同样需要消耗主机CPU,这样一来分配给虚拟机的CPU资源无形中又变少了。
综合以上来看,在竞争主机CPU资源时,vCPU个数少的虚拟机等待时间少,竞争机会大;同时协同调度这些vCPU消耗的主机CPU资源也少,所以虚拟机性能反而会有所提高。
性能监控
1.通过vSphere Web Client来查看主机和虚拟机的CPU的使用情况。 通过vSphere Web Client登录,选择查看主机,依次点击“监控--性能--高级”进行查看。
选择查看虚拟机,依次点击“监控--性能--高级”进行查看。
使用情况表示vCPU占用物理CPU时间的百分比。就绪表示vCPU在被调度到物理CPU之前的等待时间,单位毫秒。
2.通过字符命令的方式 登录vSphere ESXi主机,执行esxtop命令
%USED表示使用情况,%RDY表示就绪时间 对于性能监控来说,主机CPU的使用情况和就绪时间是两个非常值得关注的因素。使用情况反映了主机CPU资源是否被充分利用,就绪时间则表征了性能是否有潜在问题。主机CPU资源使用率高,并且就绪时间短,这往往就说明主机上的虚拟机有着较高的性能。
CPU相关问题排查
检查主机CPU资源是否饱和,可参考以下步骤。
关键点
1.在大多数情况下,CPU相关问题往往都是由CPU资源不满足需求引起。
2.CPU使用率高且就绪时间长往往会表明有CPU性能问题。
3.对于CPU相关的问题,首先应该检查主机CPU饱和度和虚拟机CPU的饱和度。
更多相关主题内容,欢迎点击阅读原文
长按二维码关注公众号