VMware vSphere中的vCPU如何工作?

我想知道vCPU是如何工作的以及如何与真实CPU“连接” – ESXi如何pipe理实际CPU硬件资源以满足vCPU需求? vCPU是否使用所有可用的核心,multithreading等? 哪里可以find描述vCPU性能特定algorithm的文档? VMware网站充满文档我知道我在那里看到,但我发现只有configurationvCPU的东西 – 但我想知道发生了什么'罩下'。

发现这篇文章: http : //www.zdnet.com/virtual-cpus-the-overprovisioning-penalty-of-vcpu-to-pcpu-ratios-4010025185/但我需要更仔细的看。

我怀疑你会find有关正在使用的algorithm的信息。 VMware可能认为他们的CPU调度器是商业机密(虽然我可能在这里是错的)。

在较高的层面上,vCPU是一个抽象的结构,在客户端看来是一个CPU核心。 然后,VMware CPU调度程序将从vCPU获取需要执行的数据,并在物理CPU内核上执行该数据。 不能保证在与该vCPU上的最后一个线程相同的物理内核上执行,但是如果可能的话,由于caching原因,调度程序确实尝试在同一CPU上保持执行,如果不可行,则尝试保持该状态同样的NUMA节点 – 再次performance。

所以一个vCPU不是一个物理核心。 这不是一个物理CPU。 它不是同时在所有物理内核上执行的。 就没有资源争夺的系统而言,它大致等同于物理CPU核心,但vCPU和物理核心之间不是1:1的关系。