答案版本 3.0

答案版本 3.0

最近我注意到我的 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不存在怎么办?

由此:Ubuntu 16.10 rc.local文件不存在

您需要输入:

sudo systemctl enable rc-local.service

初步答案

根据:intel_pstateCPU 性能调节驱动程序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_freqscaling_min_freq

您可能需要暂时卸载 CPU Freq Utils 包:

sudo apt remove cpufrequtils

我从未发现需要它,它可能会弄乱你的系统。稍后你可以再次安装它(如果需要):

sudo apt install cpufrequtils

相关内容