场景:16 核 VMware ESX 4.1 主机。假设主机在任何单一资源上都没有过载。存储延迟非常低,总内存利用率低于物理内存量,并且没有单个虚拟机显示任何 %RDY 时间或显著的页面文件活动。
单处理器 Windows 2008 R2 VM,完全更新了最新的 VMware Tools,运行 PeopleSoft 应用程序层(原谅我的含糊其辞)、WebLogic、Jrockit 等。esxtop 和 vcenter 显示物理 CPU 使用率低于 70%,物理内存低于 80%,客户机没有表现出显著的磁盘页面文件活动迹象。
用户报告称,该机器没有像“应该”那样处理那么多事件,当他们尝试登录时,通过 RDP 的鼠标和键盘事件存在明显的滞后。它的一切感觉都很“慢”。
为虚拟机添加了第二个 CPU。%RDY 时间没有明显增加,因此这被认为是一个明智的操作。感知和测量的应用程序性能显著提高。
每个人都挠头、耸耸肩,并很高兴问题已经解决。读过 VMware 性能故障排除指南的管理员则感到困惑。
我们错过了什么?
答案1
CPU Ready 显示主机 CPU 的繁忙程度,而非客户机的繁忙程度。%RDY 值高可能表示虚拟机的 CPU 利用率高,但不一定如此,如果您有很多虚拟机,则可能不是出现问题的虚拟机。
来自 VMWARE 社区:
对于每个时间周期,服务器都有一定数量的可用 CPU(包括核心)提供给 VMS。假设您有 2 个四核 CPU。那么您就有 8 个可用 CPU。因此,如果您有 8 个 VM 正在运行,并且每个 VM 只有一个 vCPU,那么它们都会在该周期内运行。当 VM 需要的 CPU 数量超过可用数量时,就会出现问题。例如,如果您有 6 个 VMS,每个 VMS 有 1 个 vCPU,而 1 个 VM 有 4 个 vCPU。显然它们不能同时运行。VMware 必须尝试同时容纳 1 个 VM 的所有 vCPU。这意味着,对于该周期,要么 2 个 VMS 处于待机状态,要么多 vCPU VM 处于待机状态。
某些多线程应用程序将使用多个 vCPU,这将有助于提高性能。
就您而言,您是否真的在一段时间内执行了性能监控统计/日志记录以获取基线,然后在添加 vCPU 后执行了一次?这可能比使用内置的 VMWare 工具更能让您了解差异的真正所在,尤其是在应用程序/进程级别。