最近我注意到我的 CPU 大部分时间都处于高频率,即使负载很小。
它是一款 i5-7300HQ 处理器,使用频率应在 800 MHz 到 2.5 GHz 之间(Turbo Boost 下为 3.5 GHz)。
现在,即使负载约为 2-8%,我看到的频率通常在 2.6 到 3.2 GHz 之间,这意味着 CPU 几乎总是处于 Turbo Boosting 状态。
以前一直是 900 - 1200 MHz。
缩放调节器设置为省电:
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
powersave
powersave
powersave
powersave
我/etc/default/grub
有一行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=disable scsi_mod.scan=sync"
在/etc/default/cpufrequtils
:
GOVERNOR="powersave"
没有/sys/devices/system/cpu/intel_pstate/
目录
我的系统规格是:
- 笔记本电脑:HP Pavilion - 15-bc203nw
- 操作系统:Ubuntu(Xubuntu)18.04.1 LTS
- 处理器:英特尔酷睿 i5-7300HQ
编辑
在@WinEunuuchs2Unix 提出建议后,我再次有了/sys/devices/system/cpu/intel_pstate/
目录。
输入以下内容:
cd /sys/devices/system/cpu/cpu0/cpufreq && paste <(ls *) <(cat *)
给出输出:
affected_cpus 0
cpuinfo_max_freq 3500000
cpuinfo_min_freq 800000
cpuinfo_transition_latency 0
energy_performance_available_preferences default performance balance_performance balance_power power
energy_performance_preference balance_performance
related_cpus 0
scaling_available_governors performance powersave
scaling_cur_freq 3236541
scaling_driver intel_pstate
scaling_governor performance
scaling_max_freq 3500000
scaling_min_freq 3500000
scaling_setspeed <unsupported>
我该如何设置它powersave
(仅在文件中更改它scaling_governor
不会产生任何效果)。
答案1
答案版本 3.0
内核版本 4.14.98 终于修复了我在过去 6 个月左右注意到的问题:
- 当系统空闲时,CPU 频率在 Turbo 模式下会飙升至 3,000 MHz。
- 当系统繁忙时,CPU 频率会降至约 1,500 MHz。
现在您可以看到,当系统空闲时,系统频率应为 800 MHz:
答案版本 2.0
OP 使用下面的初始答案的结果更新了问题,并且无论出于什么原因,调节器都被设置为performance
始终以最大速度运行所有 CPU 的模式。
我们需要对这个答案进行逆向思考:在 18.04 中将 CPU 调节器设置为性能:
使用:sudo -H gedit /etc/rc.local
插入此前最后一行包含exit 0
:
sleep 120 # Give CPU startup routines time to settle.
echo powersave | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
echo 800000 | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq
保存文件并重启。重启两分钟后,你的 CPU 将稳定下来并正常运行。
如果/etc/rc.local
不存在怎么办?
您需要输入:
sudo systemctl enable rc-local.service
初步答案
根据:intel_pstate
CPU 性能调节驱动程序,intel_pstate
状态应为:
地位
Operation mode of the driver: “active”, “passive” or “off”. “active” The driver is functional and in the active mode. “passive” The driver is functional and in the passive mode. “off” The driver is not functional (it is not registered as a scaling driver with the CPUFreq core)
我的第一步是删除你的内核命令行参数intel_pstate=disable
。
重新启动并输入以下内容:
$ cd /sys/devices/system/cpu/cpu0/cpufreq
$ paste <(ls *) <(cat *)
affected_cpus 0
cpuinfo_max_freq 3500000
cpuinfo_min_freq 800000
cpuinfo_transition_latency 0
energy_performance_available_preferences default performance balance_performance balance_power power
energy_performance_preference balance_performance
related_cpus 0
scaling_available_governors performance powersave
scaling_cur_freq 832522
scaling_driver intel_pstate
scaling_governor powersave
scaling_max_freq 3500000
scaling_min_freq 800000
scaling_setspeed <unsupported>
这是我在没有的默认配置中所拥有的intel_pstate=disable
。
密切关注至scaling_max_freq
和scaling_min_freq
。
您可能需要暂时卸载 CPU Freq Utils 包:
sudo apt remove cpufrequtils
我从未发现需要它,它可能会弄乱你的系统。稍后你可以再次安装它(如果需要):
sudo apt install cpufrequtils