![lscpu 报告的最大 CPU 频率错误,CPU 未提升到实际最大频率](https://linux22.com/image/946180/lscpu%20%E6%8A%A5%E5%91%8A%E7%9A%84%E6%9C%80%E5%A4%A7%20CPU%20%E9%A2%91%E7%8E%87%E9%94%99%E8%AF%AF%EF%BC%8CCPU%20%E6%9C%AA%E6%8F%90%E5%8D%87%E5%88%B0%E5%AE%9E%E9%99%85%E6%9C%80%E5%A4%A7%E9%A2%91%E7%8E%87.png)
我使用的是 Ubuntu 20.04,我的 CPU 型号是 Intel i7-10750H:
> lscpu
Model name: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
Stepping: 2
Frequency boost: enabled
CPU MHz: 800.000
CPU max MHz: 2601.0000
CPU min MHz: 800.0000
该处理器的最大频率为 5 GHz,而不是 2.6 GHz。即使玩图形密集型游戏,频率也从未超过 2.6 GHz。卡顿很明显。
在我的另一台笔记本电脑上,使用相同的 Ubuntu 版本,加速模式开箱即用。我该如何让这台电脑恢复正常?
更新
cat /sys/devices/system/cpu/cpufreq/boost
返回1
,因此应启用涡轮增压。
cpupower frequency-set --max 5000Mhz
没有效果。
更新 2
设置GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=force"
、更新 grub 并重新启动现在显示
Model name: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
Stepping: 2
CPU MHz: 2600.000
CPU max MHz: 5000.0000
CPU min MHz: 800.0000
CPU频率经常停留在2600MHz。
这里有一个小测试,表明它从未达到 5000 MHz:
> stress -t 30 -c 20 -i 20 -m 20 &
while true
lscpu | grep "CPU MHz:"
sleep 2
end
stress: info: [2900] dispatching hogs: 20 cpu, 20 io, 20 vm, 0 hdd
CPU MHz: 1506.625
CPU MHz: 3499.999
CPU MHz: 3599.998
CPU MHz: 3511.052
CPU MHz: 3599.481
CPU MHz: 3574.137
CPU MHz: 3505.161
CPU MHz: 3532.195
CPU MHz: 3579.484
CPU MHz: 3578.953
CPU MHz: 3500.001
CPU MHz: 3500.000
CPU MHz: 3591.847
CPU MHz: 3544.761
CPU MHz: 3500.000
stress: info: [2900] successful run completed in 31s
CPU MHz: 2600.000
CPU MHz: 2600.000
答案1
首先,确认您的 turbo 已打开。可以在 bios 中禁用它,也可以通过 powertop、auto-cpufreq 等程序禁用它(虽然是暂时的),并且在大多数笔记本电脑上,如果在 cpu 调节器中设置为省电模式,它会自动完全停止 boost。
坏消息是制造商经常在您将获得的时钟上撒谎。我无法保证 cpupower 程序或其功能的真实性,但我可以向您展示其中一些工作原理,以便您了解是否存在问题。CPU 的规格可能表明您获得 5Ghz,计算机上的功率限制可能会禁止该速度。例如:(我的 lscpu)
Vendor ID: GenuineIntel
Model name: Intel(R) Core(TM) i5-10300H CPU @ 2.50GHz
CPU family: 6
Model: 165
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
Stepping: 2
CPU max MHz: 4500.0000
CPU min MHz: 800.0000
这台机器上的处理器从未运行过 4.2GHz 以上,因为它是一台笔记本电脑,而且它无法获得电量/冷却。许多其他计算机也会有类似的问题。
使用 stress -c 8,来自 auto-cpufreq --stats:
CPU max frequency: 4500 MHz
CPU min frequency: 800 MHz
Core Usage Temperature Frequency
CPU0: 100.0% 77 °C 4200 MHz
CPU1: 100.0% 70 °C 4200 MHz
CPU2: 100.0% 75 °C 4200 MHz
CPU3: 100.0% 71 °C 4200 MHz
CPU4: 100.0% 77 °C 4200 MHz
CPU5: 100.0% 70 °C 4200 MHz
CPU6: 100.0% 75 °C 4200 MHz
CPU7: 100.0% 71 °C 4200 MHz
显然,它从未在原始情况下达到 4.5Ghz 的最大规格...但是,现在关键的是...大多数这些处理器仅额定 x 个核心全速运行(4.5 GHZ,这个处理器额定仅在 4 个核心下运行)...让我们尝试使用压力 -c 4...
重做后,我们的 4 个核心可以达到 4292,这样速度会快一点。我们先用一个试试。好的,转到 1 个线程,我们达到 4394。这将是这台机器的提升极限。在进行这些测试时,风扇几乎没有运转,而且这里的热量从未达到热上限。(从未超过 60C)。
无论如何,重点是向您展示这是如何工作的。问题可能出在我提到的任何组件上,而您实际上必须查看它们。
答案2
也许使用 cpupower-gui 包(https://manpages.ubuntu.com/manpages/impish/man1/cpupower-gui.1.html)可能会提供解决方案。我以前也遇到过类似的问题,这个方法对我有用。
答案3
我遇到了同样的问题,我通过在 BIOS 中启用 Intel Speed Shift 解决了它。