VMware vSphere 中的 vCPU 如何工作?

mir*_*irx 1 vcpu vmware-vsphere

我想知道 vCPU 是如何工作的以及它如何“连接”到真实的 CPU - ESXi 如何管理真实的 CPU 硬件资源以满足 vCPU 需求?vCPU 是否使用所有可用内核、多线程等?我在哪里可以找到任何描述 vCPU 性能的特定算法的文档?VMware 站点充满了文档,我知道我在那里看过,但我只找到了有关配置 vCPU 的内容 - 但我想知道“幕后”会发生什么。

找到这篇文章:http : //www.zdnet.com/virtual-cpus-the-overprovisioning-penalty-of-vcpu-to-pcpu-ratios-4010025185/但我需要更仔细地研究。

MDM*_*rra 8

我怀疑您会找到有关正在使用的算法的信息。VMware 可能将他们的 CPU 调度程序视为商业机密(尽管我在这里可能错了)。

在高层次上,vCPU 是一个抽象的结构,在来宾看来是一个 CPU 核心。然后,VMware CPU 调度程序获取需要从 vCPU 执行的数据,并在物理 CPU 内核上执行。不能保证在与该 vCPU 上的最后一个线程相同的物理内核上执行,但出于缓存原因,调度程序确实尝试在可能的情况下在同一 CPU 上执行,如果不可能,它会尝试保持在同一 CPU 上相同的 NUMA 节点 - 再次提高性能。

因此,vCPU 不是物理核心。它不是物理 CPU。它不会同时在所有物理内核上执行。在没有资源争用的系统中,它在性能方面大致等同于物理 CPU 内核,但它不是 vCPU 和物理内核之间的 1:1 关系。

  • 将其更多地视为到可用资源的线程路由。当进程线程启动时,管理程序将其发送到物理 CPU 上的可用资源。正如@MDMarra 所说,下次调用线程时,它可能会或可能不会在同一个内核上运行。如上所述,NUMA 节点对性能很重要,请查看 [这篇博客文章](http://blogs.vmware.com/vsphere/2013/10/does-corespersocket-affect-performance.html) 以获得有关此内容的非常好的文章和NUMA 节点如何影响 VM 的性能。 (2认同)