Ahm*_*lal 3 power-management cpufreq intel-cpu
我几乎尝试了所有解决方案来调整 CPU 频率,但没有成功。我有英特尔酷睿 i5-3210m 2.5Ghz-3.1Ghz。我想将它永久设置为 1.6Ghz,没有涡轮增压以改善电池时间。请按照intel_pstate驱动告诉它。
要将 intel_pstate 驱动程序的 CPU 频率上限限制为 52%,请执行以下操作:
echo "52" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
Run Code Online (Sandbox Code Playgroud)
注 1:在计算 52% 时,我假设您启用了 turbo,最大 pstate 为 31。因此 1.6 / 3.1 = 52%。如果您禁用了涡轮增压,那么这个数字将为 64%。没有必要专门禁用涡轮增压,因为有了这个限制,它无论如何都不会进入涡轮增压范围。
注意 2:根据您的应用程序和处理器,限制 CPU 频率可能不会导致最长的电池寿命。在某些情况下,通过更高的 CPU 频率更快地完成任务,从而允许某些 CPU 更快、更长时间地进入深度睡眠(最高 C 状态),可以降低总体功耗。
注3:解决方案不是永久的,重启后设置会丢失。建议你试一试,回来汇报,然后我们再考虑如何让它永久化。还有其他更高级的工具,但我从不使用它们。其他人可能会提供另一个涉及更高级别工具的答案。
一个例子(不同的处理器,不同的数字)。CPU 7 处于 100% 负载下:
设置频率上限之前:
$ grep MHz /proc/cpuinfo
cpu MHz : 3697.234
cpu MHz : 3655.796
cpu MHz : 3699.890
cpu MHz : 3742.257
cpu MHz : 3613.562
cpu MHz : 3670.273
cpu MHz : 3628.968
cpu MHz : 3799.898
Run Code Online (Sandbox Code Playgroud)
现在,限制上限频率,并检查它:
$ echo "50" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
50
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
50
$ grep MHz /proc/cpuinfo
cpu MHz : 1899.882
cpu MHz : 1900.015
cpu MHz : 1899.882
cpu MHz : 1893.906
cpu MHz : 1899.351
cpu MHz : 1900.015
cpu MHz : 1899.750
cpu MHz : 1899.882
Run Code Online (Sandbox Code Playgroud)
编辑:注意 intel_pstate 驱动程序更改的向后移植,无论您的股票内核是什么。我知道正在向后移植,但我不知道发布时间表。
要在引导期间始终进行更改,请先将其设为脚本,例如:
$ cat set_cpu_max_perf_pct
#! /bin/bash
echo 52 >/sys/devices/system/cpu/intel_pstate/max_perf_pct
echo -n "intel_pstate maximum performance request is (percent): "
cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
Run Code Online (Sandbox Code Playgroud)
测试脚本,以 sudo 身份运行。然后参考解决使其在引导期间运行的许多其他问题和答案之一。说,这个。
或者,您可以安装诸如TLP 之类的工具,这些工具在配置文件中具有这些设置,其中包含电池或交流电和自动开关的参数。
归档时间: |
|
查看次数: |
4727 次 |
最近记录: |