cpufreq:当我需要额外电力时,CPU频率降至最低

cpufreq:当我需要额外电力时,CPU频率降至最低

我花了将近三天的时间来解决这个问题,但无济于事。

我觉得笔记本电脑在某些任务上运行速度很慢,比平时慢,所以我下载了CPU频率扩展尝试监控并直接控制CPU运行频率和功耗。

问题是我总是看到所有 8 个核心的 CPU 频率毫无原因地下降到最小值(800MHz 或 400MHz)。这似乎发生在我需要额外电源时 - 在本地运行代码项目、打开多个浏览器选项卡等。

我正在使用cpufreqgnome shell 扩展来尝试手动控制这些值,但这似乎没有帮助。无论如何更改,在重启之前和之后,问题似乎都会突然出现,然后又消失。


我在网上研究后尝试过但没有帮助的事情:

  • 默认情况下intel_pstate使用该驱动程序,但我禁用了它(通过编辑/etc/default/grub),现在使用acpi driver
  • 尝试使用CPU Power Managergnome shell 扩展来以编程方式控制功率/速度
  • 此外cpufreq,我尝试了所有我能想到的最小-最大频率组合,以及在调速程序之间切换,以及启用/禁用frequency boost
  • 我尝试直接为所有 8 个核心设置最大频率,并像这样禁用 ppc:

--echo 1 | sudo dd of=/sys/module/processor/parameters/ignore_ppc

--echo 2900000 | sudo dd of=/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq


有什么进一步的想法吗?我真的不知道该怎么办。这使我无法工作,因为我所做的大多数代码开发任务都需要一些马力。即使在 400MHz 上上下滚动文本编辑器也会变得很麻烦,而其他几个程序正在后台运行。

以下是随机截图,cpufreq其中包含更多技术细节: cpufreq 和系统详细信息

以下是相关的 BIOS 设置: BIOS 电源管理设置

答案1

您可以使用此 bash 脚本将 CPU 设置为最大速度:

创建一个名为 cpumaxspeed.sh 的文件并输入以下代码:

#!/bin/bash
#Getting and setting variables

echo Getting info....

CPUMIN=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq)
CPUMAX=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq)
CPUMAXGHZ=$(echo "scale=1; $CPUMAX / 1000000" | bc)
CPUMINGHZ=$(echo "scale=1; $CPUMIN / 1000000" | bc)

#Display min and max CPU frequency in MHz
echo CPU min frequency: $CPUMIN" MHz" / $CPUMINGHZ" GHz"
echo CPU max frequency: $CPUMAX" MHz" / $CPUMAXGHZ" GHz"

#Setting CPU governor
echo Setting governor to performance
sudo cpufreq-set -r -g performance
echo Set governor to performance

#Setting to max frequency
echo Setting CPU frequency to be $CPUMAX" MHz" / $CPUMAXGHZ" GHz"
sudo cpufreq-set -r -f $CPUMAXGHZ"GHz"
echo Set CPU frequency to $CPUMAXGHZ"GHz"

done

用这个命令执行:

sudo sh cpumaxspeed.sh

相关内容