平台人生
作者平台人生·2016-12-08 14:39
软件开发工程师·平台人生

VMware CPU调度及性能监控简介

字数 1657阅读 8080评论 0赞 1

作者:张恋
文章来自微信公众号:平台人生


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资源是否饱和,可参考以下步骤。

    若主机CPU饱和,可参考如下建议解决。
    1.减少主机上虚拟机的数量
    1) 通过vSphere vMotion将虚拟机迁移到负载较小的主机上。
    2) 关闭一些非关键业务的虚拟机。
    2.将主机加入到vSphere DRS集群中以增加可用的CPU资源
    1) vSphere DRS使用vSphere vMotion自动迁移虚拟机以均衡CPU负载。
    3.提高虚拟机CPU的使用效率
    1) 为虚拟机分配更多的内存。
    2) 针对不同的应用程序,设置适合的vCPU个数。有时候过多的vCPU个数反而可能影响应用的性能。
    4.对于关键业务的虚拟机,通过设置相关参数来控制可用资源
    1) 在以上方法都尝试过,CPU仍然处于饱和状态,那么就需要对某些虚拟机设置优先级(Share),预留值(Reservation),限制(Limit)参数,使得关键业务能获得足够的资源,以保证业务连续性。

    关键点

    1.在大多数情况下,CPU相关问题往往都是由CPU资源不满足需求引起。
    2.CPU使用率高且就绪时间长往往会表明有CPU性能问题。
    3.对于CPU相关的问题,首先应该检查主机CPU饱和度和虚拟机CPU的饱和度。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

作者其他文章

相关文章

相关问题

相关资料

X社区推广