如何通过一个值限制我的 CPU 频率?
cpufreq 提供将频率固定为一个恒定值,而不是让它在一个范围内变化。
它还提供保守、按需、节能和性能。我不知道他们是什么意思。但他们也不限制频率。这四个设置实际上是什么意思?换句话说,他们的政策是什么?
Dou*_*ies 11
问题2:这个答案是针对acpi-cpufreq CPU频率缩放驱动驱动的:
检查您使用的 CPU 频率驱动程序的方法是:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
Run Code Online (Sandbox Code Playgroud)
保守模式具有较慢的负载与 CPU 频率响应曲线,这意味着在 CPU 频率上升之前,它需要更多的 CPU 负载。
按需模式具有更快的负载与 CPU 频率响应曲线,这意味着在 CPU 频率攀升之前,它对 CPU 的负载更少。
驱动程序使用滞后,因此负载增加和减少与 CPU 频率的曲线不同。
省电模式将请求的 p 状态锁定在处理器的最低值。结果是 CPU 始终处于最低时钟频率。
性能模式将目标 pstate 锁定在处理器的最高值。但是,请注意,某些处理器可以在无负载情况下自行退避。为简单起见,只需将其视为 CPU 始终处于最高频率。
问题1:是的,可以限制上限频率。
首先获取可用频率的列表(例如来自我的计算机):
doug@s15:~/temp$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
3401000 3400000 3300000 3100000 3000000 2900000 2800000 2600000 2500000 2400000 2200000 2100000 2000000 1900000 1700000 1600000
Run Code Online (Sandbox Code Playgroud)
然后决定您想要的最大频率是多少,注意它必须来自列表。然后设置:
echo 2600000 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
Run Code Online (Sandbox Code Playgroud)
并对所有 CPU 重复此操作。
可能首选脚本版本,以 sudo 身份运行:
#! /bin/bash
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq; do echo "2900000" > $file; done
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
Run Code Online (Sandbox Code Playgroud)