当以虚拟机形式运行 Windows(Server 2008 R2)时,如何手动启动处理器的 Turbo?

当以虚拟机形式运行 Windows(Server 2008 R2)时,如何手动启动处理器的 Turbo?

我运行的应用程序严重依赖于原始处理器速度,而不是多核的使用。我的 VM 主机中的处理器基数为 2.9,最高可以加速到 3.3,但 Windows 似乎有一个条件语句,即“如果我在虚拟环境中运行,则不允许手动加速控制。”

回到正题,由于我的应用程序不关注多个核心,所以永远不会自动触发涡轮增压,因为只有一个或两个核心“看到”大量使用;从处理器的角度来看,它仍然有足够的空间,甚至不需要考虑涡轮增压。

答案1

1. 涡轮增压

在 Intel CPU 上,Turbo 只有两种设置:“自动”和“关闭”。在自动模式下,如果处理器内部规则认为有足够的空间,处理器将自行决定是否进行 Turbo。如果在 BIOS 中启用了 Turbo,则 Turbo 基本上始终处于“自动”状态,直到某些操作将其关闭。

除了超频处理器外,您永远无法“手动启用 turbo”。处理器本身对 turbo 模式拥有完全和独占的控制权,操作系统无法覆盖它。操作系统所能做的就是告诉处理器何时不是涡轮增压。

在正常运行时,处理器会告诉操作系统它能够达到的速度,并且此速度列表只包含最高非涡轮速度。操作系统可以从此列表中请求任何速度,也可以不请求任何速度。只要操作系统请求处理器的速度低于其最高非涡轮速度,它就会关闭涡轮。只要操作系统从给定列表中请求最高速度,涡轮就会切换回“自动”。

2.虚拟机控制

Windows 无法从虚拟机内部控制主机 CPU 的速度。这是设计使然。主机操作系统应该有自己的 CPU 速度控制系统,该系统可以自动检测负载并在不需要时请求较低的 CPU 速度。要允许客户操作系统控制主机的 CPU,需要通过 CPU 的硬件控制 (MSR),这不仅仅是主要的安全风险,它首先就破坏了虚拟化的意义。

3. 多核

你的理解似乎与涡轮增压器的工作原理相反。涡轮增压器主要提高速度仅有的当一个或两个核心使用率很高,并且至少当多个核心全部加载时有效。处理器将仅有的当有足够的空间时,涡轮增压。

相关内容