VMware vSphere 中的 vCPU 如何工作?

VMware vSphere 中的 vCPU 如何工作?

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

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

答案1

我怀疑您能否找到有关所用算法的信息。VMware 可能将其 CPU 调度程序视为商业机密(尽管我可能错了)。

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

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

相关内容