如何确定 ESX 映像的实际虚拟 CPU 配置?

Abe*_*bel 2 central-processing-unit multi-core vmware-esx

我们在 ESX 客户端上存在严重的性能问题,但我无法直接查看服务器配置,但我想知道他们是否正确设置。

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

如何从客户端确定 ESX 的配置方式?我知道 ESX 可以启用 HT。我的系统大量使用 SMP,所以它应该会受益。据我所知,ESX 配置为两个 vCPU。我对数据的读取是否正确?

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

Hel*_*ick 5

如果您在具有两个 vCPU 的虚拟机上获得 280 个会话,并且在使用所有 4 个内核的同一个物理机器上获得 500 多个会话,那么您将接近使用该虚拟机配置的裸机性能。重新配置 VM 以使用 4 个 vCPU,如果 ESX 主机上没有其他任何东西消耗大量资源,性能应该会接近。但是,对于在 4 核单 CPU 主机上运行的 4-vCPU VM,Hypervisor 开销将占用总容量的一部分,这可能非常重要。ESX 虚拟机管理程序只会在它可以同时调度所有 4 个 vCPU 时才调度您的虚拟机,因此任何其他运行(虚拟机管理程序、服务控制台、其他虚拟机)将导致所有 4 个 vCPU 在这样的设置中停止。在此设置中,您是否可以跨两个双 vCPU VM 运行您的应用程序”

每个 VMware vCPU 相当于多核系统上的一个核,这就是 VMware 分配处理器资源的方式。Yorkfield 是 Core2 Quad,绝对不支持 HT - 它有 4 个物理核心,没有 HT 核心。

在 VM 中运行的 CPU-Z 只会报告呈现给 VM 的 vCPU 数量,尽管它会正确识别底层 CPU。根据 ESX 版本和 VM 的配置方式,它可以将它们呈现为双核单处理器或两个独立的处理器,但这对性能没有影响,它只是一种用于促进某些许可情况的呈现选择。

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

上面提出的严格的共同调度点有点牵强附会。自 ESX V3 以来,ESX 一直在使用宽松的协同调度机制,该机制允许一些余地(vCPU 内核之间的时钟漂移),并且在后续版本中有所改进。

与具有较少 vCPU 的 VM 相比,呈现与物理内核一样多的 vCPU 的 VM 在负载下调度时会遇到更多问题,但这并不像我最初的答案中那样引人注目。在这份 VMware 白皮书中可以找到有关它实际工作原理的非常详细的说明。