设置核心速度 - Linux

5
Architecture:
**AMD** Opteron quad-core using 2 CPUs --- Numa system

Processor : x86_64 Operating System: GNU/Linux

我正在尝试将一个die上的核心频率设置为2.2GHz(即最大值),同时关闭另一个die上的所有核心。

sudo sh -c "echo 0 > /sys/devices/system/cpu/cpu1/online"
sudo sh -c "echo 0 > /sys/devices/system/cpu/cpu3/online"
sudo sh -c "echo 0 > /sys/devices/system/cpu/cpu5/online"
sudo sh -c "echo 0 > /sys/devices/system/cpu/cpu7/online"

因此,只有核心0,2,4,6被打开
我尝试将governor更改为performance,但它会在其他线程运行时更改其他内核的频率。例如:
if thread one runs on core 0: then its freq is 2.2GHz

when thread two starts to run on core 2: it gets it as 2.2GHz - Where as I am expecting it to work as 0.8GHz.

有没有一种特定的方法可以永久地设置单个核心的频率。
3个回答

3

以下是@Lars的答案。

这里是完整的解决方案:

echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

echo userspace > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor

echo userspace > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor

echo userspace > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor

yum install cpufrequtilssudo aptitude install cpufrequtils

然后,

sudo cpufreq-set -c 0 -f 2200Mhz

sudo cpufreq-set -c 2 -f 800Mhz

sudo cpufreq-set -c 4 -f 800Mhz

sudo cpufreq-set -c 6 -f 800Mhz

如果这个问题还需要我的帮助,请告诉我。谢谢。


1

您可以尝试将调度程序设置为userspace(如果未包含,则可能需要重新编译内核),然后使用scaling_setspeed手动设置频率。


幸运的是,我的内核版本和发行版都提供了“用户空间”调节器。你能详细说明一下后面的部分吗? - user1860977
好的,非常简单。执行以下命令: echo userspace > /sys/devices/system/cpu/cpuX/cpufreq/scaling_governor 其中X是核心id。查看CPU调节器状态: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor查看CPU信息和频率: cat /proc/cpuinfo | egrep 'processor|MHz' - user1860977
scaling_setspeed文件位于同一目录下 -- 您应该能够将所需频率输出到其中(可能您的内核不支持此功能)。 - Lars Kotthoff

0

如果缺少“cpufreq-set”命令,这个命令可能会起作用:

cpupower -c 0 frequency-set -f 800

1
需要安装 linux-tools-common 软件包。 - Pablo Bianchi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接