我最近indicator-multiload
在笔记本电脑上安装了 Ubuntu 14.10,发现我的 CPU 大部分时间都处于高频率,即使负载很小。它是 i7-4700MQ 处理器,应使用 800 MHz 至 3.4 GHz 之间的频率(使用 Turbo Boost)。现在,即使负载为 0-2%,我看到的频率通常也在 2.5 到 3.1 GHz 之间,这意味着 CPU 几乎总是处于 Turbo Boost 状态。
我的 Ubuntu 在负载很小的情况下也比 Windows(其中 CPU 通常在 0.8 - 1.8 GHz 范围内)消耗更多电量,所以我认为这不仅仅是频率显示错误。
我没有手动更改任何设置或安装任何会影响 CPU 行为的东西。以下是我的cpufreq
和的内容intel_pstate
,在我看来是正确的:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
intel_pstate
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
800000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
3400000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
2852437
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
23
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0
有人见过这种情况吗?或者知道如何避免无缘无故使用高频?
顺便说一句,我知道可以禁用 Turbo Boost,这可能会将最大频率限制为 2.4 GHz,但这似乎有点过头了,因为我不想在需要时限制我的 CPU 性能。
谢谢。
编辑:缩放调节器设置为省电:
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
这些是频率:
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
2492343
2740218
2502562
2438625
2435718
2782500
2783250
2697000
没有任何东西占用我的 CPU。正如我所说,使用率约为 1%。如果我运行 top,它是唯一正在运行的用户进程:
Tasks: 266 total, 1 running, 265 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.3 us, 0.2 sy, 0.0 ni, 98.5 id
答案1
经过进一步查看后,我在内核错误跟踪器上发现了两个相关问题,它们描述了我所遇到的相同症状。这个被标记为已修复,但是另一个是新的,据人们报告说它尚未修复。
让计算机进入睡眠状态似乎出了问题。重启后,CPU 正常运行,即空闲时处于低频率,但从睡眠状态唤醒后,频率会卡在高频率。重新启动后,我的频率如下所示(与问题中发布的内容进行比较):
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
1588875
800062
800062
800062
928500
2112937
800250
1911750
我想现在我们只需要等待这个问题得到解决。
答案2
这应该是一条评论,但我还没有足够的积分:
请按照此示例发布输出:
doug@s15:~/temp$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
只有当扩展调节器设置为性能时,才会出现非常激进的 CPU 频率与负载曲线。但是,目前,即使在省电模式下,也不需要太多负载即可从最低 pstate 提高 CPU 频率。
您能否编辑您的帖子以显示所有 CPU 频率。例如:
doug@s15:~/temp$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
1627750
1627750
1627750
1627750
1627750
1627750
1627750
1627750
您也可以尝试使用 acpi-cpufreq 驱动程序,而不是 intel_pstate 驱动程序。在 grub 中更改此行即可(在此示例中,我在该行中还添加了其他几项):
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 intel_pstate=disable crashkernel=384M-:128M"
如果您确实尝试了 acpi-cpufreq 驱动程序,请在此处回复您的发现。