Turbo Boost工作了吗?

我最近购买了一台配备有Sandy Bridge处理器的笔记本电脑,据说它应该支持Turbo Boost。11.04版本是否支持Turbo Boost?我如何判断它是否正常工作?
我尝试了this,但似乎只能检测到Nehalem处理器。
7个回答

11.04运行的是2.6.38内核,据说与Sandy Bridge处理器兼容性良好。
您可以打开一个终端并运行grep MHz /proc/cpuinfo。然后打开第二个终端选项卡并运行类似于while :; do :; done的循环。在第一个终端中,再次运行grep MHz /proc/cpuinfo。现在您应该能看到其中一个核心的频率更高了。
$ grep MHz /proc/cpuinfo 
cpu MHz         : 1600.000
cpu MHz         : 1600.000
cpu MHz         : 1600.000
cpu MHz         : 1600.000
cpu MHz         : 1600.000
cpu MHz         : 3701.000
cpu MHz         : 1600.000
cpu MHz         : 1600.000

您还可以尝试来自powertoplinux-tools-common软件包的turbostat(在sudo turbostat 之前运行sudo modprobe msr)。i7z的Git版本据说适用于Sandy Bridge(对我使用的桌面i7也有效)。

1谢谢你的回复。看起来我的 turbo boost 功能并没有正常工作。我使用的是 8,1 型号的 MacBook Pro,它的最高主频只能达到 2.7GHz,而宣传中的基准主频是这个数值,而 turbo boost 的速度则被宣传为 3.4GHz。我可能会另外发一个问题来询问这个情况…… - gregghz
我有点困惑:使用你的技术,Turbo Boost 似乎无法正常工作。然而,如果我使用 i7z 脚本,它会告诉我 Turbo Boost 已启用。 - n3rd
@R3s3t,3701实际上意味着启用了涡轮增压的3700,由主板自行决定是否激活。 - psusi
这真奇怪,我的处理器的基本时钟速度是1.8 GHz,可以通过Turbo Boost提升到2.6 GHz,但是现在它只显示800MHz到1.8GHz。难怪Ubuntu感觉有点卡顿... :( - king_julien
9这个回答似乎只部分正确。在/proc//sys/device/system/cpu/中的所有信息都根据设计始终限制在常规频率范围内;请参阅https://www.kernel.org/doc/Documentation/cpu-freq/boost.txt 另外,CPU频率监控器依赖于这些信息,因此它们不会显示提升。但是turbostat和其他工具会显示。对于带有集成显卡的AMD处理器,需要特别注意,请参阅http://askubuntu.com/a/501599/308343 @king_julien 您的假设可能是错误的。 - Run CMD

使用sudo turbostat来进行此操作。 cat /proc/cpuinfo的输出并不总是显示实际的当前CPU频率,而是显示非增压最大频率,即使启用了并且处于活动状态的Turbo Boost。

如elmicha的回答所述,您需要使用sudo modprobe msr加载msr模块,然后使用sudo turbostat运行turbostat。


接受的最高票答案并不总是有效

正如第二个最高票答案所指出的那样,最高票和被接受的答案有时显示的是最大的常规频率。

备用命令行界面方法

下面您可以看到CPU编号为0的频率。要查看所有CPU,请将0替换为*。频率以MHz为单位,保留三位小数。因此,1000000 = 1000 MHz = 1 GHz。这款英特尔Skylake处理器的额定频率为2.6 GHz或启用Turbo Boost后为3.5 GHz。

最低频率800 MHz

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
800000

最高频率为3500 MHz(3.5 GHz)
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
3500000

当前频率为1027.669兆赫(1.028千兆赫)。
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
1027669

当YouTube加载时,CPU 0到7的频率
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
2754249
2700098
2842167
2700270
1359287
901937
1662780
1731062

8个处理器中有4个处于超频模式(高于2.6 GHz)

当YouTube暂停时,CPU 0至7的频率

$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
808913
800029
800022
800004
800001
800001
800013
800009

所有处理器的最低速度都是800 MHz,即使Chrome在两个屏幕上运行,并且有11个标签打开,但YouTube已暂停。
Intel Turbo Boost是否已启用?
您可以使用终端检查Turbo Boost功能是否已启用:
$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0

这是一个双重否定;当“no turbo”关闭(=0)时,Turbo Boost就会开启。
要禁用Turbo Boost,请使用sudo权限,并将开关no_turbo设置为1:
$ echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
1

返回的1表示涡轮现在已关闭。

使用Conky的备用GUI方法

其他答案提到了基本CLI(命令行界面)的备选方法。我喜欢使用Conky来实现这一点。在下面的示例中,Skylake CPU的频率从800 MHz到2600 Mhz是固定的。启用Turbo Boost后,在重负载下频率可以跳至3500 MHz。

下面的.gif示例开始时显示频率在重负载下围绕3100 MHz波动,当grep在整个文件系统上运行时。然后发出以下命令:

$ echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo

关闭涡轮增压。速度降至固定的2600 MHz,这是没有涡轮增压时的常规最大速度。
然后涡轮命令被撤销:
$ echo "0" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo

...重新打开涡轮加速器,速度跳到2600兆赫以上,并在3100至3200兆赫之间波动。

Toggle turbo boost

注意当打开涡轮时,温度跳升10摄氏度的速度有多快。

Conky gif中的哪个部分显示了Turbo Boost? - muru
@muru 我应该启动旧笔记本电脑,在高负载下生成一个新的.gif文件,因为在Ivy Bridge CPU上,超频在2.4 GHz(2400 MHz)后开始。无论如何,我们假设conky创建者知道他的处理器速度的最小值、非超频和超频的最大值。然后他/她只需瞥一眼MHz读数就能知道超频是否正常工作。 - WinEunuuchs2Unix
是的,你应该。 - muru
在我运行 RHEL-6.6 的服务器上,没有 /sys/devices/system/cpu/intel_pstate/no_turbo。CPU 是 Xeon E5-2690,应该具有 Boost 技术... 我的内核(2.6.32)太旧了吗? - Mikhail T.
@MikhailT。我不确定。我看了你的规格,它是基于Sandy Bridge的,这是第二代。我的Ivy Bridge是第三代,肯定有像上面详细介绍的Turbo Boost设置。我的当前笔记本电脑是第六代(Skylake),符合上述目录。他们刚刚发布了第八代(我想是Coffee Lake),但我还没有研究过。在工作中,我们使用REHL,有一天它崩溃到一个shell提示符,我发现内核版本是2.6.512或类似的版本。恐怕我不知道足够回答你的问题。 - WinEunuuchs2Unix
嗨,我刚刚运行了您的脚本来测试我的自家Turbo在5.3.0-12 Intel 18c V4芯片上,应该可以将频率提升至3GHz,但它卡在了22倍频。 我将CPUF的最大值设置为3000,最小值设为1200。Turbo已启用,但频率没有变化。 - Ryan Jeremiah Freeman

要安装turbostat,您需要运行以下命令:
$ sudo apt-get install linux-tools-common linux-tools-generic

(显然,我声望不够,无法将此作为评论添加到 @david-gardner 的帖子中)

1你可以随时建议编辑那个答案。 - muru

你可以实时在Ubuntu上使用htop来查看Turbo Boost的工作情况。
  1. 安装 htop:

    sudo apt install htop
    
  2. 在终端中运行 htop 命令打开它。你会看到一个图形窗口在终端中显示。

  3. 用鼠标点击 Setup 或按下 F2

  4. 点击 Display options 并启用 Also show CPU frequency:

    htop display options

  5. 点击 Done 或按下 F10 保存设置。

现在你可以通过查看实时的CPU频率来看到涡轮增压正在工作。例如,在下面的截图中,我的i5处理器的基本速度是2.5GHz,但你可以看到涡轮增压正在发挥作用,并提供超过3GHz的频率。

example screenshot showing turbo boost

此外,htop还可以显示每个核心使用的百分比以及温度,并且htop在终端窗口中以更图形化的方式显示统计信息。与本问题中提到的其他工具相比,使用htop的优势在于我们可以看到哪个进程在CPU和内存方面占用更多资源。用户可以选择终止进程。

2请注意,“同时显示CPU频率”选项是在“htop” 3.0.0版本中添加的。对于Ubuntu 20.10之前的版本, 默认存储库中的“htop”版本为2.x,因此此设置不可用。 - BeastOfCaerbannog
1@BeastOfCaerbannog 感谢你指出这一点。确实,我以前没有见过这个。但新版本很不错。 - Krishnaap

对我来说,一切都设置正确,所以没有一个答案适用。在浪费了几天之后,我发现我的CPU调度程序被设置为“powersave”,永远不会超过基本频率。不得不将其切换到“performance”。
以下是修复方法:
sudo cpupower frequency-set -g performance

您需要先安装 cpupower
sudo apt-get install linux-tools-common linux-tools-generic

cpupower是一组工具,用于检查和调整处理器的节能相关功能。 cpupower frequency-info可以帮助获取所需信息。

示例输出:

# cpupower frequency-info
analyzing CPU 0:
  driver: intel_pstate
  ...
  ...
  current CPU frequency is 2.80 GHz (asserted by call to hardware).
  boost state support:
    Supported: yes
    Active: yes
    3000 MHz max turbo 4 active cores
    3000 MHz max turbo 3 active cores
    3100 MHz max turbo 2 active cores
    3100 MHz max turbo 1 active cores

提升状态-活跃确认了您所寻找的内容。
手册页面:https://linux.die.net/man/1/cpupower 附注: 我知道这是一个旧的主题,但我认为这个答案在这里很合适,并且可以帮助他人。