在 Linux 中监视/控制 Intel Turbo Boost

eww*_*ite 25 linux intel central-processing-unit

有没有一种很好的方法可以从 Linux 主机监控和/或控制 Nehalem 处理器上的 Intel Turbo Boost 技术?我正在寻找运行股票或实时 MRG 内核的 RHEL/CentOS 5.5 主机。

这里有没有人找到在您的环境中利用 Turbo Boost 的好方法?

ale*_*oot 21

i7z是一个很好的工具,用于在 Linux 上为支持它的 Intel CPU(i7 及更高版本)监控 Intel Turbo Boost。

i7z Turbo Boost 在工作中的屏幕截图

如果它正常工作,您将看到当前频率随着您向 CPU 增加负载而变化,这是由于乘数在负载下动态增加。为此尝试使用BurnP6

电源状态的基本描述(pdf):

C0 - 活动状态。在 C0 中,指令正在由内核执行。对于英特尔® Turbo Boost 技术,C0 中的内核被视为活动内核。

C1 - 停止状态。在 C1 中,没有执行任何指令。对于英特尔® Turbo Boost 技术,C1 中的内核被视为活动内核。

C3 - 在 C3 中,核心 PLL 被关闭,所有核心缓存都被刷新。对于英特尔® Turbo Boost 技术,C3 中的内核被视为非活动内核。

C6 - 在 C6 中,核心 PLL 被关闭,核心缓存被刷新,核心状态被保存到最后一级缓存。Power Gates 用于将功耗降低到接近于零。对于英特尔® Turbo Boost 技术,C6 中的内核被视为非活动内核。

C7 - Sandy Bridge 及更高版本引入的新的、稍微更深的睡眠状态。

请注意,C6 和 C7 状态是“深度”睡眠模式,可能会有一些延迟惩罚,这对于某些类型的服务器工作负载可能不太好。有关更多详细信息,请参阅英特尔嵌入式应用程序电源管理(pdf)。

Turbo Boost 是 P0 状态,与睡眠相反。当只有几个内核处于活动状态时,它会放大 CPU 倍频器,但在极端多核负载下会下降,以防止 CPU 出现热问题。

一般来说,必须在 Linux 中启用ACPI 支持,i7z 才能显示正确的温度和 Turbo Boost(高于默认值的动态乘数)才能工作。您可以在这篇博文中找到有关如何在 Linux 上启用 Intel Turbo Boost 的有用信息。

  • 澄清一下,我们没有发现有必要禁用 CPU 上的所有 C 状态(省电模式)才能使 Turbo Boost 正常工作,正如链接帖子所暗示的那样。然而,BIOS 和操作系统中适当的 ACPI 支持绝对是至关重要的。 (2认同)