首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么增加超级V宿主VM的“逻辑处理器数量”会提高VM的性能?

为什么增加超级V宿主VM的“逻辑处理器数量”会提高VM的性能?
EN

Server Fault用户
提问于 2013-07-23 18:41:15
回答 2查看 21.2K关注 0票数 9

据我所知,虚拟机(假设Relative Weight相等)在处理器中的份额是相等的。

当给VM一些处理时间时,VM是看到它使用的单个核还是多个核并不重要,因为处理是来自Hyper-V主机上的一个处理器数组。然而,当我在Hyper中为一个特定的VM将Number of logical processors设置从1设置到4时,我看到了一个巨大的性能提升。

我当前设置的规范大致如下:

  • 超级V主机有32 GB内存,24个逻辑处理器(误字?),少量TB空间.
  • VMs分配6 GB内存、1或4个内核、几百GB空间和运行2008年R2。

我也经历过类似的事情在过去的超级V设置。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2013-07-23 18:47:59

据我所知,每个管理程序中的虚拟机都能够使用额外的虚拟CPU来调度额外的并发执行线程。

正是物理机器和虚拟机之间的抽象层使得它无法像你所描述的那样工作。VM不知道物理机器有多少核心。VM不会“看到”物理机器上的物理CPU(或核心)。虚拟机管理程序为VM提供了多少个虚拟CPU,而来宾操作系统使用这些虚拟CPU来调度额外的并发线程.虚拟机管理程序分配给虚拟机的虚拟CPU总数甚至可以超过机器中物理CPU/核心的数量。

换句话说,虚拟机在分配单个vCPU时,会安排它的线程,就好像它只有一个CPU。不管底层物理机器中有多少核心。(尽管值得注意的是,物理机器可能会将一个物理核上的一个VM线程调度为一个线程量,或时间片,然后在下次计划运行时在另一个物理核心上运行它。不过,虚拟机完全不知道其中任何一种情况。它只知道一次只能调度一个线程,一个接一个,因为它只有一个虚拟CPU。)

让我们在这里说清楚我们的条件。您可以将vCPU或虚拟CPU分配给VM,而不是“核心”。核心(我假设您指的是共享单个物理套接字的物理处理单元)不等于vCPU。它们之间有一层抽象。如果一个VM只有一个vCPU分配给它,它只能安排一个线程一次运行。这就是为什么VM在分配给它的2-4个虚拟CPU时运行得更快的原因--因为它现在能够调度多个线程同时运行。

但是,这里肯定存在收益递减的规律,因为过多的虚拟CPU在同步等方面会产生越来越高的开销。

Hyper和VMware虚拟机监控程序如何安排虚拟机线程执行有细微的不同,而且它们对物理资源“超额订阅”的方法也不同,但这是一个很好的一般概念。

票数 20
EN

Server Fault用户

发布于 2013-07-23 18:50:12

分配的虚拟CPU数量确实很重要。运行在VM中的软件不知道它在VM中,并且主机能够提供比VM更多的功能。因此,如果您正在运行的软件可以利用多个CPU核,在一个只分配了一个核心的VM中,该软件将只为其任务安排一个核心,并且VM一次只能使用一个主机核。一旦您给VM更多的核心,软件可以调度更多的并行任务,主机的CPU将为VM调度。

小心不要给VM太多,以免引起争用,如果一个VM有比主机更多的虚拟核,VM将与它自己竞争,如果是像vmware这样的调度监控程序,VM根本就无法执行任何东西(当然,过度分配的选项被管理层阻止了)。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/525723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档