先上结论。一行命令:
sudo awk 'BEGIN{ for (i=0;i<8;i++) {system("cpufreq-set -c "i" -u 4.40GHz")}}'
可以修改4.40GHz为合理的频率。
基础知识
linux 常用 CPU 频率设置工具
cpufreq https://blog.csdn.net/feelabclihu/article/details/118617876 安装(ubuntu):
sudo apt-get install cpufrequtils
安装后使用 cpufreq-set 可以设置cpu供电策略,具体参数如下:
- -c CPU, –cpu CPU # 指定CPU核心号
- -d FREQ, –min FREQ # 设置最小主频
- -u FREQ, –max FREQ # 设置最大主频
- -g GOV, –governor GOV # 设置工作策略
- -f FREQ, –freq FREQ # 设定特定的工作频率(需要加载userspace governor)
- -h, –help # 输出帮助信息
另外:
- -c 或 --cpu 默认参数为0
- -f FREQ, --freq FREQ 参数不能与其他参数同时使用,除了 -c CPU, --cpu CPU
- kHz =^ Hz * 0.001 =^ MHz * 1000 =^ GHz * 1000000
因此每次只能设置一个核心的频率。有没有什么办法能一次设置所有核心的频率呢?
Shell 循环设置核心号
新建文件CPU_set_freq.sh,内容如下:
arg=${1:-4.00}"GHz" # 设置默认参数
for i in {0..7} # 循环设置核心号
do
cpufreq-set -c $i -u $arg #执行cpufreq命令
done
awk 命令设置核心号
新建文件CPU_set_freq.sh,内容如下:
arg=${1:-4.00}"GHz"
sudo awk -v x=$arg 'BEGIN{ for (i=0;i<8;i++) {system("cpufreq-set -c "i" -u "x)}}'
运行
例如想要设置CPU频率1.0GHz,运行
sudo bash CPU_set_freq.sh 1.0