当VM中运行的应用程序和操作系统使用ESXi主机为该VM提供的所有cpu资源时,会发生访客cpu饱和。但是,此guest虚拟机cpu饱和度并不一定表示存在性能问题。
计算密集型应用程序通常使用所有可用的cpu资源,但这是预期的并且可能是可接受的(只要最终用户认为作业足够快地完成)。即使是不太密集的应用程序也可能会遇到高cpu需求而不会遇到性能问题。但是,如果在发生客户cpu饱和时存在性能问题,则应采取措施消除该情况。
当VM配置有多个vcpu但主动仅使用其中一个vcpu时,可能会浪费可用于执行有用工作的资源。此时,您可能至少从最活跃的vcpu角度看到潜在的性能问题。
在vSphere中分析cpu争用
要在guest虚拟机操作系统中发现cpu过量使用,准备时间和使用百分比是您应密切监视的两个cpu资源参数:使用vSphere Web Client登录vCenter Server。在主屏幕上,导航到“ 主机和群集”。展开ESXi主机并转至cpu耗尽的VM。导航到“ 监控”选项卡。导航到“ 性能”选项卡。导航到“ 高级”视图。单击图表选项。从图表指标导航到cpu。导航到VM对象。导航到“ 高级”选项卡,然后单击“ 图表选项”。在Counters部分中仅选择Usage,Ready和Used,然后单击OK:
上面的示例显示了使用一个vcpu配置的VM上的高使用率和已使用值。我们可以看到其整体cpu使用率为100%:
上面的示例显示在向VM添加第二个vcpu后,总cpu使用率的百分比降至52%。
如何工作的
对于SMP VM,如果它需要高cpu资源,则应用程序可能是单线程的,或客户机操作系统配置有uniprocessor HAL。许多应用程序只使用一个控制线程编写。这些应用程序无法利用多个处理器核心。
为了使VM能够利用多个vcpu,VM上运行的客户机操作系统必须能够识别和使用多个处理器核心。如果VM正在vcpu0上完成所有工作,则客户机操作系统可能配置了内核或HAL,只能识别单个处理器内核。
在上图中,操作系统在两个可用的vcpu之间共享单线程应用程序的负载。
您有两种可能的方法来解决与guest虚拟机cpu饱和度相关的性能问题:
增加提供给应用程序的cpu资源提高VM使用cpu资源的效率添加cpu资源通常是最简单的选择,尤其是在虚拟化环境中。如果VM在添加cpu资源后仍然继续遇到cpu饱和,则应调查应用程序和操作系统的调整和行为。
原文地址:https://www.toutiao.com/article/6687751354686898702/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。