场景:16核心VMware ESX 4.1主机。 假定主机根本没有被加载到任何单个资源中。 存储延迟非常低,总内存利用率低于物理内存量,并且没有一个虚拟机显示任何%RDY时间或重要的页面文件活动。
运行PeopleSoft应用程序层(原谅我的模糊性),WebLogic,Jrockit等的单处理器Windows 2008 R2虚拟机与最新VMware Tools完全兼容。esxtop和vcenter显示物理CPU使用率低于70%,物理内存低于80% ,客机没有显示重要的磁盘页面文件活动迹象。
用户报告说,该机器没有处理“应该”那样多的事件,而当他们尝试login时,通过RDP存在显着的鼠标和键盘事件滞后。 一切都只是感觉“慢”。
第二个CPU被添加到VM。 %RDY时间没有明显增加,所以这被认为是一个理智的行为。 感知和测量的应用程序性能显着提高。
每个人都会挠挠脑袋,耸耸肩,对于它的修复感到高兴。 阅读VMware性能故障排除指南的pipe理员感到困惑。
我们错过了什么?
“CPU就绪”显示主机CPU而不是来宾的繁忙程度。 高%RDY可能对应于虚拟机的CPU利用率高,但不一定,如果你有很多的虚拟机,它可能不是问题的问题。
来自VMWARE社区:
对于每一个时间周期,服务器都有确定数量的可用CPUS(包括核心)提供给VMS。 假设你有2个四核心cpus。 你有8个可用的CPUS。 所以如果你有8个虚拟机在运行,而且每个虚拟机只有一个vcpu,那么所有这些虚拟机都会在这个循环中运行。 当您的虚拟机需要更多的CPU时,就会出现问题。 例如,如果您有6 VMS与1 vcpus。 每个虚拟机有4个虚拟CPU。 显然他们不能同时运行。 VMware必须尝试同时容纳1个虚拟机的所有虚拟CPU。这意味着,对于这一个周期,2个虚拟磁盘或者多个虚拟机都处于待机状态。
某些multithreading应用程序将使用多个vCPU,这将有助于提高性能。
在你的情况下,你实际上是perfmon统计/logging随着时间的推移,以获得一个基准,然后做一个vCPU后添加? 这可能会给你一个更好的指示,然后使用内置的VMWare工具,差异真的在哪里,特别是在应用程序/进程级别。