mli*_*ner 4 vcpu vmware-vsphere
我正在配置需要大约 12 个内核才能运行的软件,但我在 vSphere 虚拟机上运行它,这意味着最多可以配置 8 个(虚拟)内核。 [1] 将在其上运行的物理机有 24 个可用内核,并且仅托管一个其他虚拟机。该 VM 也分配了 8 个内核。
由于我的机器有 8 个内核,而另一台机器有 8 个内核,这意味着 8 个内核似乎完全空闲。这似乎是错误的。
我猜 VMWare 做了一些聪明的事情——尽管我只能为我的机器分配 8 个内核,但实际上,如果后端有 24 个内核,那么我保证会得到其中的 8 个,但是如果没有其他机器在使用它们,则可以使用其中的 24 个。
我一直在阅读有关在 vSphere 中共享的内容,[2] 但这有点超出我的理解。
任何人都可以解释这是如何工作的吗?
编辑:这是我得到的关于 8 个 CPU 限制的解释,但我需要确认一下。
vSphere 使用动态处理器负载平衡,允许来宾中的每个分配的核心访问主机上的所有核心。虽然来宾操作系统只能看到 8 个物理处理器,但每个处理器都可以访问 24 个内核池。这与大型机的工作方式非常相似。
这暗示 8 核的行为更像 24 核,但现在这似乎是错误的。是吗?
参考:
这意味着您的虚拟机中并行执行的线程永远不会超过 8 个。然而,通过 ESX 资源分配的魔力,您可以为这些线程提供相当多的马力。您不仅限于实际 CPU 的最大速率,ESX 的 CPU 负载平衡方法将允许运行得比这更快……只要您使用它的操作能够执行如此轻微的乱序执行.
这是通过利用 CPU 资源的队列结构来实现的。根据需要将工作分派给多个处理器。单个 vCPU 可以在系统上的任何物理 CPU(或本地节点中的 CPU,如果在 NUMA 系统中)上执行。实现超过物理 CPU 性能的 vCPU 性能是通过将工作从单个 vCPU 并行或至少非常靠近地分配到多个物理 CPU 来完成的。
当需要重新组合多个 CPU 返回的工作以模拟单个 vCPU 时,它确实看起来像单个 CPU 工作非常快的 VM。ESX 将多个工作单元重新组装成正确的顺序。
当然,并非所有工作负载都非常适合这一点。提交大量相互之间松散相关的迭代工作的工作可能是最好的情况。涉及与早期指令的大量紧密依赖关系的作业,例如加密算法的递归调用,几乎无法扩展。
归档时间: |
|
查看次数: |
12044 次 |
最近记录: |