我有一台配备 i7 处理器和 Ubuntu 14.10 的戴尔笔记本电脑。当我在我的 BIOS 中禁用 SpeedStep 时,我的计算机速度非常快,但风扇运行非常频繁并且电池很快耗尽。
当我激活 SpeedStep 时,Ubuntu 变得非常慢。我试过将调速器切换到性能但没有效果。
这是 cpufreq-info 显示的所有 7 个 CPU 的内容:
analyzing CPU 7:
driver: intel_pstate
CPUs which run at the same hardware frequency: 7
CPUs which need to have their frequency coordinated by software: 7
maximum transition latency: 0.97 ms.
hardware limits: 800 MHz - 3.70 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 3.70 GHz and 3.70 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 1.17 GHz.
奇怪的是频率永远不会超过 1.2 GHz。我试过启动 firefox 或编译一个大项目。
这是 CPU 相关的输出lshw
:
*-cpu
description: CPU
product: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz
vendor: Intel Corp.
physical id: 43
bus info: cpu@0
version: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz
slot: SOCKET 0
size: 3581MHz
capacity: 3581MHz
width: 64 bits
clock: 100MHz
capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cpufreq
configuration: cores=4 enabledcores=4 threads=8
从 Ubuntu 14.04 升级到 14.10 后我遇到了这个问题。
那么如何让 Ubuntu 14.10 在需要时全速使用我的 CPU?
更新:禁用intel_pstate
所有 CPU 后无论我做什么都以 800 MHz 运行。通过小程序或命令行切换调控器没有效果。
更新:安装后cpufreqd
,/var/log/syslog
循环获取这些消息:
Mar 3 13:00:03 scala cpufreqd: cpufreqd_set_profile : Couldn't set profile "Performance High" set for cpu0 (2700000-2700000-performance)
Mar 3 13:00:03 scala cpufreqd: cpufreqd_loop : Cannot set policy, Rule unchanged ("none").
更新: cat /sys/devices/system/cpu/cpu*/cpufreq/bios_limit
为所有 CPU打印800000
(800 MHz)。这个限制从何而来?如何增加呢?
这个答案适用于新发现的BIOS限制CPU频率的原因。
请检查您的电源适配器和电池的状况。它们是否正常运行?电池充电是否正常?笔记本电脑仅使用电池是否正常?
通常,当电源出现问题和/或不再识别电源适配器时,戴尔 bios 会强制降低 CPU 频率。
有一种方法可以绕过 /sys/devices/system/cpu/cpu*/cpufreq/bios_limit 的包含,但这只能作为最后的手段,并且清楚地知道最低级别的保护正在被执行禁用。所以我们先不去那里。
对于 CPU 时钟频率管理,14.04 默认使用 acpi-cpufreq 驱动程序,14.10 默认使用 intel_pstate 驱动程序。有与您遇到的问题类似的报告。
作为测试,请尝试切换回 acpi-cpufreq 驱动程序。保存 /etc/default/grub 文件的副本,以防万一:
以 sudo 身份编辑 /etc/default/grub 文件并将此参数添加到 GRUB_CMDLINE_LINUX_DEFAULT 行:
如果该行上已有其他参数,则添加新参数。例子:
保存文件后,更新 grub:
重新启动计算机。
您还可以检查您是否正在运行 thermald:
如果是,并且只是为了快速测试,请禁用它(请注意,您应该在禁用 thermald 时监控温度):
如果您随后获得了在显着负载下增加 CPU 频率的能力,那么您的 /etc/thermald/thermal-conf.xml 文件可能有问题。