每个虚拟机的逻辑处理器数量?

我有一台运行带有两台Windows Server 208 R2标准客户虚拟机的Windows Hyper-V Server 2008 R2的服务器(四核)。

我已经注意到每个虚拟机的逻辑处理器设置( 处理器 )设置页面的数量默认为1,但是允许我select1到4个“虚拟处理器”(或者等同于我想的逻辑处理器)。

我的问题是:a)这些“虚拟处理器”/“逻辑处理器”是否直接映射到我的英特尔Q6600四核CPU上的内核? b)在这种情况下,是否build议将来宾虚拟机的数字设置为2? 这是否为Hyper-V主机留下了足够的CPU能力?

除了处理能力外,我还想知道是否/如何为Hyper-V主机预留一定量的RAM。

这是一个权衡。 假设你有四个物理内核和两个虚拟机。

如果您在每个虚拟机中映射两个虚拟内核,那么几乎每个客户都会看到它期望的内容。 它会看到两个核心,它期望完全控制,或多或less得到这一点。 (假设主机负载不高)。您不会经常混淆客户的调度程序,它将任务分配给期望立即完成任务的核心,而是因为没有物理核心而完成任务可用。 但是,如果一个guest虚拟机处于CPU空闲状态而另一个空闲,则两个内核将会旋转。

另一方面,如果您为每个guest虚拟机提供了四个虚拟内核,则每个guest虚拟机将能够使用所有可用的CPU功率,而另一个guest虚拟机和主机则不需要它。 然而,当有来自另一来源的负载时,客人的调度程序将不会获得它期望的行为,并且一些任务将立即开始,并且一些不会以客人的调度程序不容易期望和处理的方式。

我的build议通常是将每个虚拟机中的物理内核数量尽可能多地预计为需要大量的CPU。 如果您的虚拟机严重依赖于延迟,则会例外。 我还会减less与更多关键虚拟机共享一个物理机箱的“较小”或“较不重要”虚拟机的核心数量。

虚拟机pipe理程序将逻辑内核分配给物理内核,作为其调度策略的一部分。 没有固定的映射,除非你专门做一个。 (除了在一个特定的情况下,我不build议这样做,在这种情况下,您需要为延迟关键虚拟机预留一个内核。)

不,不存在逻辑处理器与物理处理器的直接映射…本质上,每个逻辑处理器都创build一个新的线程,将亲和性设置为特定的物理核心…因此每个线程可以消耗100个每个核心资源的百分比。 将2台机器分配给所有4个内核(2×4个逻辑内核)可能是也可能不是个好主意。 如果你的应用程序是cpu密集型的……或者在两台机器上产生大量的线程……两者都会周期性地等待对方完成……每个实例分配专用核心意味着将会有最小的延迟抛出任务CPU。

您不能真正将特定数量的内存分配给主机,而是限制客户机可以使用的数量。 你可以在其他的虚拟框架中使用,但是hyper-v是块中的新手,没有老手的所有钟声和哨子。