vSphere - 将 100% CPU 分配给 1 个虚拟机/88% 的效率

Cod*_*ith 1 virtual-machines hypervisor vmware-esxi vmware-vsphere

编辑 2:我的应用程序受益于超线程

A. 是的,我知道这项技术是什么以及它的作用

B. 是的,我知道物理内核和逻辑内核之间的区别

C. 是的,关闭 HT 会使渲染运行更慢,这是意料之中的!

D. 不,当我将所有逻辑(是逻辑)核心分配给一个 VM 时,我并没有过度特权,如果您阅读 VMWare 的白皮书,您就会知道调度程序生成物理硬件的拓扑图并在分配时使用该图资源,将所有逻辑核心分配给一个 VM 会在 Windows 中生成 16 个逻辑处理器,就像我在物理硬件上安装 VM 一样。哇,瞧,经过 5 次测试后,这种安排产生了最快(也是最有效)的渲染时间。

F. 有问题的应用程序是使用 backburner 和 Mental Ray 渲染器的 3ds max 2014。


TL|DR:我(有时)希望以尽可能高的 CPU 效率在 vSphere 上运行一个虚拟机,如何?

我希望以一种非标准的方式使用 VMWare 的 ESXI/vSphere 管理程序。

通常人们使用管理程序在一个系统上同时运行多个 VM。我想使用虚拟机管理程序让我在应用程序之间快速切换,但一次只能真正运行一个虚拟机/应用程序。

它实际上是一个宠物项目,我有一个 5 节点渲染农场(例如节点 2x Intel Xeon E5540),它在大多数情况下处于关闭状态(当我不渲染时,我不需要运行这些机器)。这似乎是在浪费宝贵的计算时间,所以我希望在不渲染时将它们用于其他事情(一种通用的 40 核/80 线程计算集群)。

我希望 vSphere 可以让我在渲染时启动渲染节点虚拟机,而在其他情况下则不启动。问题是,当渲染 VM 运行时,我真的需要高效率的 CPU。

我使用渲染作业作为基准,并在虚拟机上获得大约 88% 的速度,因为我可以在非虚拟机设置上获得。我希望接近 95%,有什么想法可以达到吗?

编辑:详细信息:

渲染 VM 正在使用的资源,我不完全理解为什么此栏未满:

在此处输入图片说明

该 VM 的资源设置:

在此处输入图片说明

即使 VM 未显示为使用 100% 的资源,主机也会:

在此处输入图片说明

我不完全理解这里的 % 份额,这是当所有这些 VM 都打开时吗?此外,我没有将其他 VM 配置为保留 10%:

在此处输入图片说明

最后,主机确实显示为已被充分利用,尽管此处未显示,但 MHz 利用率较低(即不是 100%):

在此处输入图片说明

虚拟机配置:

在此处输入图片说明

我知道这是一个有趣的案例,但尽管如此,我还是觉得这个问题是有效的并且很好,并且可以帮助其他处于类似情况下的人(尽管我承认这个案例非常具体)。

eww*_*ite 5

您错误地配置了虚拟机和主机。

需要考虑的事项:

  • 如果您有一个计算量很大的进程,您可能需要禁用超线程。
  • 超线程(逻辑)核是一样的物理核心!!
  • Intel E5540 CPU 可追溯到 2009 年。它们是四核 CPU。您将拥有 8 个物理内核和 8 个逻辑内核(共 16 个)。
  • 如果您已为单个VM配置了16 个 vCPU,请缩减!!
  • ESXi 也需要一些资源。
  • 如果您不愿意禁用超线程,请尝试调整虚拟机 (8 vCPU) 的大小。

其他要做的事情(一般)...

  • 将您的 ESXi 更新到当前版本和补丁
  • 更新 VM 的虚拟硬件(例如 vmx-09 或 vmx-10)。

  • @codysmith 我的论点没有错。虽然 VMware 允许您配置比物理内核更多的 CPU,但您确实不应该这样做。 (4认同)