내가 할 때
sudo watch -n1 cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq
1.8~2.7GHz가 나옵니다. 절대 2.7을 넘지 않습니다.
내가 할 때
watch -n1 "cat /proc/cpuinfo | grep MHz"
768MHz ~ 1.8GHz를 얻습니다. 절대 1.8을 넘지 않습니다.
무슨 일인지 아는 사람 있나요?
답변1
이제 대부분의 CPU에는 배터리/전력 사용량을 절약하기 위해 속도를 조정할 수 있는 기능이 있습니다. 그것은 일반적으로 불린다CPU 주파수 스케일링. CPU의 실시간 속도는 다음과 같이 보고됩니다.
$ sudo cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
절대(최대) CPU 속도는 다음과 같이 보고됩니다.
$ cat /proc/cpuinfo
특히 다음 줄은 다음과 같습니다.
model name : Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz
표시된 행cpu MHz
아니요CPU의 최대 속도를 표시합니다. 이 값은 현재 속도입니다. 멀티 코어 시스템(예: i7 또는 i5)에서는 다음 명령을 사용하여 이를 확인할 수 있습니다.
$ cat /proc/cpuinfo |grep MHz
cpu MHz : 1199.000
cpu MHz : 1199.000
cpu MHz : 1199.000
cpu MHz : 2667.000
그러나 다음 명령을 사용하면 절대(최대) 속도를 볼 수 있습니다.
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 4
Thread(s) per core: 2
Core(s) per socket: 2
CPU socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 37
Stepping: 5
CPU MHz: 2667.000
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3
참고: 코어 수는 NUMAS node0 CPU(s)
4개(0, 1, 2, 3)입니다.
CPU 확장 및 조절?
시스템의 모드를 스케일링 조절기라고 합니다. 자동차의 속도 조절기와 유사합니다. 이 명령을 사용하여 사용 가능한 명령을 확인할 수 있습니다.
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
powersave ondemand userspace performance
현재 활성화된 항목을 볼 수도 있습니다.
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand
노트:내가 표시하는 명령에는 첫 번째 CPU만 포함됩니다 cpu0
. *
경로에서 a를 바꾸면 모든 코어를 선택적으로 볼 수 있습니다 cpu1
.
주지사 프로필에 사용할 수 있는 최대 및 최소 CPU 속도를 볼 수 있습니다.
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
2667000
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
1199000
자세한 내용은 다음 제목의 이 문서에서 확인할 수 있습니다.Linux에서 CPU 주파수를 조정하려면 cpufreq를 사용하세요..
cpuinfo_cur_freq는 어떻습니까?
이 매개변수는 CPU가 현재 작동하는 방식과 관련된 유용한 매개변수라기보다는 CPU 사양 및 현재 있는 프로필과 더 관련이 있습니다. 실제 운영 원격 측정을 위해 커널 조정 가능 항목을 사용합니다 scaling_*
.
예
CPU 코어를 열별로 표시하기 위해 다음 스크립트를 구성하여 다양한 코어 조정 가능 항목이 어떻게 보이는지 더 쉽게 확인할 수 있습니다.
#!/bin/bash
nthCore=$(lscpu|grep node0|cut -d"-" -f2)
for i in /sys/devices/system/cpu/cpu0/cpufreq/{cpuinfo,scaling}_*; do
pname=$(basename $i)
[[ "$pname" == *available* ]] || [[ "$pname" == *transition* ]] || \
[[ "$pname" == *driver* ]] || [[ "$pname" == *setspeed* ]] && continue
echo "$pname: "
for j in `seq 0 $nthCore`;do
kparam=$(echo $i | sed "s/cpu0/cpu$j/")
sudo cat $kparam
done
done | paste - - - - - | column -t
실행하면 다음과 같은 결과가 출력됩니다.
$ ./cpuinfo.bash
cpuinfo_cur_freq: 2667000 2667000 2667000 2667000
cpuinfo_max_freq: 2667000 2667000 2667000 2667000
cpuinfo_min_freq: 1199000 1199000 1199000 1199000
scaling_cur_freq: 2667000 2266000 1333000 2667000
scaling_governor: ondemand ondemand ondemand ondemand
scaling_max_freq: 2667000 2667000 2667000 2667000
scaling_min_freq: 1199000 1199000 1199000 1199000
scaling_cur_freq
튜너블에서 코어 #1과 2의 속도가 느려지는 것을 볼 수 있습니다 .