我们的团队成员经常向我抱怨他们的虚拟机运行缓慢。
我们的团队成员建议暂时关闭一些虚拟机并尝试访问虚拟机。
但大多数情况下这并没有什么帮助。
假设我为我的虚拟机分配了 4 GB 和 2 个 CPU。因此理想情况下它不应该面临性能问题。
由于我们的 ESXi 4.1 服务器在同一台服务器上有多个 VM(我们的内存和 CPU 已过度使用)。
关闭其他虚拟机是否真的有助于提高性能?
[注:我们使用的是 ESXi 4.1,硬件是 R710 服务器。单台服务器中的虚拟机数量较多,因此内存使用量过大。]
答案1
您需要分析整个盒子的情况,查看 CPU 争用和 %Ready、内存使用情况以及 IO 延迟和带宽。虽然这方面的基础入门相当简单,但我建议您接受这方面的培训(即使是基本的 VCP4 课程也会有很大帮助),或者找一个之前做过这方面工作的人来查看问题。
至于关闭虚拟机是否有帮助,这可能有帮助,但这确实取决于问题是什么,您需要先找到它。
不过,您可以随意在您的帖子中添加一些显示这些数据的实际细节,我们会查看。
答案2
是的,它可能会有所帮助,特别是当您过度承诺时,特别是当您在 CPU 上过度承诺并运行多 CPU 客户机时。
与普遍看法相反,向 VMWare 客户机添加更多 vCPU 通常会降低性能,而不是提高性能。全部分配的 vCPU 能够运行,或者没有任何因此,向 VM 添加更多 vCPU 会使 VM 无法在任意给定时间访问足够的物理 CPU 核心。本质上,来自客户操作系统的 CPU 请求会排队等待,直到可用的物理核心数与 VM 的 vCPU 数相同。
因此,如果您一直在添加更多内核以尝试“提高性能”,那么您实际上一直在增加 CPU 资源的排队时间,并使客户操作系统的性能变差。假设情况确实如此,您的第一步应该是快速检查 CPU 争用和排队时间,然后将所有不需要多个 vCPU 的操作系统切换到单个 vCPU 操作系统。根据问题中的特定操作系统,最好的方法可能是简单地移除多余的 CPU,或者最好创建一个新的客户操作系统。
答案3
即使所谓的“空闲”机器也会偶尔运行后台任务,消耗 CPU、内存、磁盘、网络等。如果它不需要运行,并且您的资源像您所说的那样受限,请将其关闭。
答案4
正确答案是迄今为止大家所说的一切的混合。关闭未使用的虚拟机有帮助吗?毫无疑问,有帮助,列出可以提供帮助的事情(即使空闲的虚拟机确实处于空闲状态),
- 更少的上下文切换(它们很昂贵)
- 可能降至过量提交阈值以下,此时 VMware 不再需要中断大页面。
- 更少的缓存未命中(更少的上下文切换的扩展)。
它是否有助于用户感知性能?这取决于具体情况。如果 CPU 争用率很高(CPU 就绪),或者内存过量使用造成影响(非零膨胀或分页)。那么就会有明显的改善。
如果没有,那么就会有改进,只有基准会提高,您需要寻找其他地方。