我想知道vCPU是如何工作的,它如何“连接”到实际的CPU -- ESXi如何管理真实的CPU硬件资源以满足vCPU的需求?vCPU是否使用所有可用的内核、多线程等?在哪里可以找到描述vCPU性能的特定算法的文档?VMware站点充满了我在那里查看过的文档,但我只发现了配置vCPU的一些内容--但我想知道“幕后”发生了什么。
找到了这篇文章:http://www.zdnet.com/virtual-cpus-the-overprovisioning-penalty-of-vcpu-to-pcpu-ratios-4010025185/,但我需要更仔细的研究。
发布于 2014-03-19 20:18:46
我怀疑你会发现有关使用中的算法的信息。VMware可能认为他们的CPU调度程序是一个商业秘密(尽管我可能错了)。
在较高的级别上,vCPU是一个抽象的构造,在来宾看来是一个CPU核心。然后,VMware CPU调度程序接收需要从vCPU执行的数据,并在物理CPU核心上执行它。不能保证在同一物理核心上执行该vCPU上的最后一个线程,但是调度程序确实会尝试在相同的CPU上保持执行,如果可能的话,因为缓存的原因,如果不可能,它会尝试将它保持在同一个NUMA节点上--同样是为了性能。
所以vCPU并不是一个物理核心。这不是物理CPU。它并不是在所有物理核中同时执行的。在没有资源争用的系统中,它大致等同于物理CPU核心,但它不是vCPU与物理内核之间的1:1关系。
https://serverfault.com/questions/583239
复制相似问题