如何确定ESX映像的实际虚拟CPUconfiguration?

我们在ESX客户端有严重的性能问题,但是从我的位置我不能直接查看服务器configuration,但我想知道他们是否正确设置它。

运行CPU-Z显示了每个核心有两个处理器,而我有Yorkfield处理器,因此预计会出现四个核心。 这是虚拟CPU在CPU-Z中显示的方式吗?

如何从客户端确定ESXconfiguration的方式? 我知道ESX可以启用HT。 我的系统大量使用SMP,所以应该受益。 从我收集的内容来看,ESXconfiguration了两个vCPU。 我读的数据是否正确?

编辑:基本上有两个窒息CPU的原因。 首先,应用程序并不完美,我们正在努力。 其次,我们没有足够的CPU能力。 该图像来自一个类似的本机,现在在虚拟机上。 性能应该是相似的,但不是。 通常我们可以在每个本地系统上处理500多个会话。 在这个系统上,窒息开始大约280次。 我知道指责CPUconfiguration是有点短视的,但经过两天的密集监测和分析之后,这一切都开始指向这个方向(内存,磁盘IO,数据库连接和networking运行良好)。

如果在一台虚拟机上有两个vCPU和500+个虚拟机,在同一个物理机上使用所有4个内核,那么您将获得280个会话,那么您将接近使用该虚拟机configuration的裸机性能。 重新configuration虚拟机以使用4个vCPU,并且性能应该接近,否则ESX主机上的其他任何操作都不会消耗大量资源。 但是,对于在4个单核CPU主机上运行的4-vCPU虚拟机,虚拟机pipe理程序的开销将占用整个容量的一小部分,这可能相当重要。 ESXpipe理程序只会调度您的虚拟机,因为它可以同时调度所有4个vCPU,所以其他任何运行(pipe理程序,服务控制台,其他虚拟机)都会导致所有4个vCPU在这样的设置上停顿。 在此设置下,如果可以跨两个双vCPU虚拟机运行应用程序,则可能会发现即使运行额外的来宾操作系统增加了额外开销,它也可以更好地扩展,调度问题对于虚拟机pipe理程序来说会更容易处理与其他任务需要访问CPU资源时,您将只拖延两个核心。

每个VMware vCPU都等同于多核系统上的单个核心,这就是VMware如何分割处理器资源。 Yorkfield是Core2 Quad,绝对不支持HT – 它有4个没有HT内核的物理内核。

在虚拟机中运行的CPU-Z只会报告呈现给虚拟机的vCPU数量,尽pipe它会正确识别底层CPU。 根据ESX版本以及虚拟机的configuration方式,可以将其作为双核单处理器或两个单独的处理器呈现,但对性能没有影响,只是用于简化某些许可情况的演示select。

编辑提供更准确和最新的数据:

上面提到的严格的共同调度点是一点红鲱鱼。 由于ESX V3允许一些余地(vCPU内核之间的时钟漂移),并且随后的版本有所改进,ESX一直使用宽松的共同调度机制。

一般情况下,虚拟机呈现的虚拟CPU数量与物理内核数量相比,在虚拟机负载下比虚拟机使用较less的虚拟CPU更麻烦,但并不像原来的答案那么戏剧化。 在这份VMware白皮书中可以find关于它如何工作的非常详细的解释。

当系统受CPU限制时,有多less个进程正在使用CPU? 你所描述的意味着只有一个可运行的过程。

Yorkfield CPU不支持HT,所以你可以排除。