我有一个服务器运行超线程双核四核CPU。
我们有一个Windows 2003虚拟机,它有一个单一的核心。
当使用prime95时,我注意到它在2.3Ghz(每个Core在该服务器上是3ghz)最高。
无论如何,ESXi可以让单个虚拟CPU使用多个物理核心吗?
我知道这是一个奇怪的,但只是玩:)
谢谢。
就我的理解而言,这是肯定的,也不是,不是因为你想要的理由。 你为虚拟机提供的1个vcpu允许并不意味着它将一直停留在cpu#1的核心#2上,但是这意味着它永远不会使用> 1核心。
由于您的服务器上只有一个虚拟机,因此您看不到分布在多个内核上的工作负载,因为CPU调度程序从来没有认为有必要将其从单个内核移出。 但是,如果您要开始托pipe更多可以看到不同工作负载的计算机,并且即使它们全部被分配了单个vcpu,那么任何一台计算机都可能不一定在同一个物理内核上始终运行。
工作可以分布在多个核心上,具体取决于ESXi的CPU调度器如何配合。 也就是说,VMware仍然无法同时在两个物理内核上分割单个vcpu。 如果负载平衡器认为这样做是有好处的,那么所有它可以做的就是将这些vcpus迁移到另一个物理核心,即如果一个核心变得不堪重负,另一个核心处于空闲状态,ESX将把vcpu迁移到该空闲核心。
如果你真的想看看这个devise是如何工作的,我将从第6页开始阅读这篇文章,以及第10页3.3.1节的更多内容: http : //www.vmware.com/files/pdf/techpaper/VMW_vSphere41_cpu_schedule_ESX .PDF
这不是VMware的限制,而是一般处理器和软件的工作方式。 您拥有的想法是多cpu计算的圣杯,让单线程应用程序的工作负载分布在多个内核上,以提高性能。 这与超线程完全相反:不是让一个内核来做两个内核的工作来增加并行执行带宽,而是让两个内核来做一个内核工作的两倍。 无论如何,这可能是更多的技术比你想要的。
tl; dr:不,但是如果你弄清楚你怎么可能不想告诉城里的每个人怎么做,除非他们提供一对夫妇:)
不,它不能。 这不是一个神奇的子弹,会以某种方式改变处理器架构。