2012-11-29 4 views
5
Architecture: 
**AMD** Opteron quad-core using 2 CPUs --- Numa system 

Processor : x86_64 Operating System: GNU/Linux 

코어 코어를 다이의 코어 하나에서만 2.2GHz (최대)로 설정하려고합니다. 다른 다이는 완전히 꺼졌다. 따라서 단지 코어코어 속도 설정 - 리눅스

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 are turned on

나는 governorperformance에 변경 시도했지만 다른 스레드가 실행 할 때 다른 코어의 주파수를 '변경합니다. 예를 들어 :

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. 

단지 영구적으로 하나의 코어의 주파수를 설정하기위한 특별한 방법이있다.

답변

1

조정자를 userspace으로 설정하십시오 (포함되지 않은 경우 커널을 다시 컴파일해야 할 수도 있음). scaling_setspeed을 사용하여 수동으로 주파수를 설정하십시오.

+0

다행히 주지사'userspace'가 커널 및 유통의 나의 버전에 의해 제공됩니다. 나중에 확장 할 수 있습니까? – user1860977

+0

알겠습니다. 아주 간단합니다. 말 '에코 사용자 공간>/SYS/장치/시스템/CPU/cpuX /에는 cpufreq/scaling_governor' X는 코어 ID '고양이/SYS/장치/시스템/CPU/CPU0 /에는 cpufreq/scaling_governor' 이다 'cat/proc/cpuinfo | egrep 'processor | MHz'' – user1860977

+0

'scaling_setspeed' 파일은 같은 디렉토리에 있습니다. 원하는 주파수를 echo 할 수 있어야합니다. (커널이 지원하지 않을 수도 있습니다). –

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 cpufrequtils 또는 다음

sudo 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 

내가 더 이상 할이 문제에 도움이 될 수 있습니다 알려줘 :

는 여기에 완벽한 솔루션입니다. 감사

0

은 "cpufreq를 세트"하나가 누락 된 경우이 명령이 작동 될 수 있습니다

cpupower -c 0 frequency-set -f 800