我的问题在这里:
root@LeAn:~/Desktop# sh MinPower.sh
CPU MHz: 1200.000
root@LeAn:~/Desktop# lscpu | grep MHz
CPU MHz: 1200.000
root@LeAn:~/Desktop# python TestCpu.py
11.3900308609
root@LeAn:~/Desktop# sh MaxPower.sh
CPU MHz: 2700.000
root@LeAn:~/Desktop# lscpu | grep MHz
CPU MHz: 2700.000
root@LeAn:~/Desktop# python TestCpu.py
11.4552109241
这是 MaxPower.sh
modprobe cpufreq_userspace
cpufreq-set -c 0 -u 2.7GHz
cpufreq-set -c 1 -u 2.7GHz
cpufreq-set -c 2 -u 2.7GHz
cpufreq-set -c 3 -u 2.7GHz
cpufreq-set -c 4 -u 2.7GHz
cpufreq-set -c 5 -u 2.7GHz
cpufreq-set -c 6 -u 2.7GHz
cpufreq-set -c 7 -u 2.7GHz
cpufreq-set -c 0 -d 2.7GHz
cpufreq-set -c 1 -d 2.7GHz
cpufreq-set -c 2 -d 2.7GHz
cpufreq-set -c 3 -d 2.7GHz
cpufreq-set -c 4 -d 2.7GHz
cpufreq-set -c 5 -d 2.7GHz
cpufreq-set -c 6 -d 2.7GHz
cpufreq-set -c 7 -d 2.7GHz
cpufreq-set -c 0 -f 2.7GHz
cpufreq-set -c 1 -f 2.7GHz
cpufreq-set -c 2 -f 2.7GHz
cpufreq-set -c 3 -f 2.7GHz
cpufreq-set -c 4 -f 2.7GHz
cpufreq-set -c 5 -f 2.7GHz
cpufreq-set -c 6 -f 2.7GHz
cpufreq-set -c 7 -f 2.7GHz
lscpu | grep MHz
这是TestCpu.py
import time
start_time = time.time()
i=0
while (i<50000000):
i+=1
print time.time() - start_time
问题是为什么两个频率之间没有区别?
答案1
如果 cpufrequtils 未安装或者无法正常工作,您可以绕过它,以下命令将调整您的频率:
设置高低频率边界的方法是使用以下命令:
首先,列出支持的频率:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
要列出当前低边界集,请使用以下命令:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
或列出最大值:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
例如,要将低点设置为 1200,请使用以下命令:
echo "1200000" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq
例如,要将最大值设置为 2700,请使用以下命令:
echo "2700000" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
默认governor
设置为“ondemand”,仅在需要或系统负载下才会达到最大值。CPU 在低负载下不会时钟频率过高。要将 CPU 设置为静态频率,请使用“performance”并将 max_freq 设置为所需频率。
要列出可用的调控器,请使用以下命令:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
要列出当前调控器,请使用以下命令:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
要将当前调节器设置为性能,请使用以下命令:
echo "performance" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
您甚至可以根据您拥有的核心数量,通过将 cpu* 替换为实际的 cpu(例如 cpu0、cpu1、cpu2 或 cpu3)来调整各个核心。
答案2
默认调节器设置为“ondemand”,仅在需要或系统负载下才会达到最大值。CPU 在低负载下不会时钟频率过高。要将 CPU 设置为静态频率,请使用“performance”并将 max_freq 设置为所需频率。