VMware 中有多少争用过多?

Chu*_*ton 21 virtualization vmware-vsphere

一段时间以来,我一直试图弄清楚为什么我们的许多关键业务系统都收到了从轻微到极端的“缓慢”报告。我最近将目光转向了托管所有相关服务器的 VMware 环境。

我最近下载并安装了适用于 SCOM 2012 的 Veeam VMware 管理包的试用版,但我很难相信(我的老板也是如此)它向我报告的数字。为了让我的老板相信它告诉我的数字是真实的,我开始研究 VMware 客户端本身以验证结果。

我看过这篇 VMware KB 文章;专门针对 Co-Stop 的定义,其定义为:

MP 虚拟机准备运行但由于 co-vCPU 调度争用而导致延迟的时间量

我正在翻译

来宾操作系统需要来自主机的时间,但必须等待资源可用,因此可以被视为“无响应”

这个翻译看起来正确吗?

如果是这样,这就是我很难相信我所看到的:包含大多数“慢”虚拟机的主机当前显示的 CPU同步停止平均值为127,835.94毫秒!

这是否意味着该主机上的虚拟机平均必须等待 2 分钟以上的 CPU 时间???

这台主机上确实有两个 4 核 CPU,它有 1x8 CPU 来宾和 14x4 CPU 来宾。

jle*_*nen 45

您在评论中声明您有一个双四核 ESXi 主机,并且您正在运行一个 8vCPU 虚拟机和十四个4vCPU 虚拟机。

如果这是我的环境,我会认为它被严重过度配置。我最多会在该硬件上放置四到六个 4vCPU 来宾。(这是假设有问题的 VM 具有要求它们具有如此高的 vCPU 数量的负载。)

我假设您不知道黄金法则……对于 VMware,您永远不应该为 VM 分配超过其需要的内核数。原因?VMware 使用某种严格的协同调度,这使得虚拟机很难获得 CPU 时间,除非有与分配的虚拟机一样多的可用内核。这意味着,除非同时打开 4 个物理内核,否则 4vCPU 虚拟机无法执行 1 个工作单元。换句话说,在架构上最好是拥有一个具有 90% CPU 负载的 1vCPU VM,然后拥有一个每个内核具有 45% 负载的 2vCPU VM。

所以...总是创建具有最少 vCPU 的 VM,并且仅在确定有必要时才添加它们。

根据您的情况,使用 Veeam 监控您的访客的 CPU 使用率。尽可能减少 vCPU 的数量。我敢打赌,几乎所有现有的 4vCPU 来宾都可以降到 2vCPU。

当然,如果所有这些虚拟机实际上都有 CPU 负载来要求它们拥有的 vCPU 数量,那么您只需要购买额外的硬件。

  • 这个答案,我喜欢,另一个!(把咖啡杯砸在地上) (20认同)
  • 那个 VMWare 白痴还在吗?Hyper-V 也有同样的情况——在初始版本中,它尽快得到处理。现在内核是独立调度的。我无法想象当前版本的 VmWare 仍然如此。 (3认同)
  • 要添加的一件事.. 为 CPU % 就绪设置警报。http://www.davidklee.net/articles/sql-server-articles/cpu-overcommitment-and-its-impact-on-sql-server-performance-on-vmware/ (2认同)
  • @TomTom:根据 http://serverfault.com/a/642316/58957,在 3.x 之前的版本(10 多年前!)中采用了“严格的协同调度”,但互联网仍然充满了这种. 仅在必要时增加 vCPU 数量的建议仍然是合理的。 (2认同)

eww*_*ite 17

我可以描述我在这方面的一些经验......

我认为 VMware 在教育客户(或管理员)最佳实践方面做得不够好,也没有随着产品的发展更新以前的最佳实践。这个问题是如何没有完全理解像 vCPU 分配这样的核心概念的一个例子。最好的方法是从小规模开始,使用单个 vCPU,直到您确定 VM 需要更多。

对于 OP,ESXi 主机服务器有两个四核 CPU,产生 8 个物理内核。

所描述的虚拟机布局总共有 15 个来宾;1 x 8 vCPU 和 14 x 4 vCPU 系统。这太过分了,尤其是在存在一个具有 8 个 vCPU 的客户机的情况下。这没有道理。如果您需要一个那么大的虚拟机,您可能需要一个更大的服务器。

请尝试调整虚拟机的大小。我很确定他们中的大多数人都可以使用 2 个 vCPU。添加虚拟 CPU 并不会使运行速度更快,因此如果这是对性能问题的补救措施,那么这是错误的方法。

在大多数环境中,RAM 是最受限制的资源。但是,如果争用过多,CPU 可能会成为问题。你有这方面的证据。如果分配给单个 VM 的内存过多,则RAM 也可能是一个问题。

可以对此进行监控。您正在寻找的指标是“CPU 就绪百分比”。您可以通过选择一个虚拟机并转到Performance> Overview> CPU Graph从 vSphere 客户端访问它。

  • 低于 5% CPU 就绪- 你很好。
  • 5-10% CPU 就绪- 密切关注活动。
  • 超过 10% 的 CPU 就绪- 不好。

请注意下图中的黄线。 在此处输入图片说明

你介意在你的问题虚拟机上检查这个并报告吗?