Bla*_*k00 9 virtualization hyper-v
据我了解,虚拟机(假设Relative Weight
是平等的)获得平等的处理器份额。
当 VM 获得一些处理时间时,VM 是使用单个内核还是多个内核都无关紧要,因为无论如何处理都来自 Hyper-V 主机上的处理器阵列。但是,当我Number of logical processors
在 Hyper-V 中为特定 VM将设置从 1 设置为 4 时,我发现性能有了巨大的提升。
我当前设置的规格大约是:
Hyper-V 主机有 32 GB RAM、24 个逻辑处理器(打错字?)、几 TB 的空间。
VM 分配有 6 GB RAM、1 或 4 个内核、几百 GB 空间并运行 2008 R2。
我在过去的 Hyper-V 设置中遇到过类似的事情。
Rya*_*ies 20
我所知道的每个虚拟机管理程序中的虚拟机都能够使用额外的虚拟 CPU 来安排额外的并发执行线程。
正是物理机和虚拟机之间的抽象层使其无法按照您描述的方式工作。VM 不知道物理机有多少个内核。VM 不会“看到”物理机器上的物理 CPU(或内核)。管理程序为 VM 提供了多少个虚拟 CPU,而客户操作系统使用这些虚拟 CPU 来调度额外的并发线程......管理程序分配给虚拟机的虚拟 CPU 总数甚至可以超过物理 CPU 的数量/机器中的核心。
换句话说,虚拟机在分配了单个 vCPU 时,会像只有一个 CPU 一样调度其线程。底层物理机中有多少个内核并不重要。(尽管值得注意的是,物理机可能会在一个物理内核上为一个线程量子或时间片调度该 VM 线程,然后在下一次调度运行时将其运行在不同的物理内核上。虚拟机具有不知道发生了什么。它只知道一次只能调度一个线程,一个接一个,因为它只有一个虚拟 CPU。)
让我们在这里非常清楚我们的条款。您将 vCPU 或虚拟 CPU 分配给 VM,而不是“核心”。核心(我假设您指的是共享单个物理插槽的物理处理单元)不等于 vCPU。它们之间有一层抽象。如果一个虚拟机只分配了 1 个 vCPU,它一次只能调度一个线程运行。这就是为什么您的 VM 在分配给它的 2 -4 个虚拟 CPU 的情况下运行得更快的原因 - 因为它现在能够调度多个线程同时运行。
但是,这里肯定存在收益递减规律,因为过多的虚拟 CPU 在同步等方面会导致越来越高的开销成本。
Hyper-V 和 VMware 管理程序在调度虚拟机线程以供执行的方式上略有不同,它们在处理物理资源“超额订阅”的方法上也有所不同,但这是一个很好的通用概念。
归档时间: |
|
查看次数: |
20794 次 |
最近记录: |