Linux에서 CPU 속도를 보는 올바른 방법은 무엇입니까?


20

내 CPU에 대한 정보를 출력하는 두 가지 명령을 찾았습니다 : cat /proc/cpuinfolscpu. /proc/cpuinfo내 CPU 속도가 2.1Ghz 인 반면 lspcu3167Mhz라고합니다. 어느 것이 맞습니까?

이것은 cat /proc/cpuinfo내 프로세서 속도에 대한 정확한 결과입니다 .

model name  : Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz

그리고 이것은 lscpu:

CPU MHz:               3225.234

(어떤 이유로 든 lscpu매번 다르게 출력되며 3100 ~ 3300 MHz 사이에서 다양 함)


3
귀하는 /proc/cpuinfo또한라는 한 줄이 있어야 cpu MHZ: ...현재 속도 인을. 2.1 이후는 @기본 속도입니다 (터보 부스트 없음).
don_crissti

터보 부스트 란 무엇입니까? 그리고 이것이 내 속도가 실제로 3.2GHz라는 것을 의미합니까?
Rohan

2
필요할 때 "가스를 치는"인텔의 방식입니다. 나는 당시의 실제 속도가 실제로 3.2GHz 정도라고 생각합니다 cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq.
don_crissti

2
Turbo Boost 는 사용중인 코어 수에 따라 프로세서의 주파수를 변경하는 기술입니다. 코어를 거의 사용하지 않으면 성능이 향상되고 저온이 유지되도록 주파수가 증가합니다. 터보 부스트 주파수 테이블 을 확인하여 어떻게 증가하는지 확인할 수 있습니다 .
Jaime

답변:


35

각 코어의 현재 속도를 보려면 다음을 수행하십시오.

watch -n.1 "cat /proc/cpuinfo | grep \"^[c]pu MHz\""

노트 :

귀하의 경우 watch명령 1 초보다 작은 간격하지 작업을 수행하므로 같은 간격을 수정합니다

watch -n1 "cat /proc/cpuinfo | grep \"^[c]pu MHz\""

cpu speed각 코어의 실시간을 표시합니다 .

다른 터미널에서 다음 명령을 한 번 이상 watch실행 하면 위의 명령으로 속도가 변경 되었음을 확인할 SpeedStep수 있습니다 ( Cool'n'Quietfor AMD).

echo "scale=10000; 4*a(1)" | bc -l &

(이 명령은 10000 개의 장소 bc를 계산 pi하는 데 사용 됩니다 .)


.작동시키기 위해 첫 번째 명령에서 를 제거 해야했습니다.watch -n1 "cat /proc/cpuinfo | grep \"^[c]pu MHz\""
n1k31t4

1
이것은 좋은 방법이지만, 0.1 초마다 명령을 실행하지 않도록주의해야합니다. 즉, CPU 속도 보고서에 영향을 미칩니다. 1 초이면 충분합니다.
Lizardx

@Lizardx 일반적으로 동의하지만이 경우 CPU 속도가 1 초 간격보다 빠르게 증가 및 감소하여 가시적 인 속도 변화가 부족합니다. 최신 프로세서는 너무 빠르기 때문에 처음에는 SpeedStep1 초를 간격으로 사용할 때 작동하지 않는다고 생각했습니다 . 최소한 .5도 빨리 가고 싶지 않다면 사용해야합니다 .1 second. (그런 속도로 많은 속도 변화를보고 싶지는 않았지만
Timothy Martin

1
타이머가 1 초 미만으로 설정된 상태에서 상단을 실행하면 CPU 사용량을 눈에 띄게 볼 수 있습니다. 내 생각에 실제로보고있는 것은 CPU 속도 정보를 생성하는 시스템, 즉 CPU 속도 출력 생성으로 인해 CPU 이동이 발생한다는 것입니다. 1 초도 안되는 시간에 CPU 속도를 직접 유발하기 시작합니다. 예를 들어, -d5의 top은 CPU의 1 %입니다. -d2에서는 약 5 %입니다. 실제로 CPU가 자신이하고있는 일을하고 있다고 생각하는 것에 자신을 속이고 있다는 것을 알 수 있습니다. 쉘로의 출력도 비싸다.
Lizardx

시도 watch -n0.1할 수 있습니다. 실패하면 while true; do cat /proc/cpuinfo | grep MHz; sleep 0.1; clear; done시계보다 깜박입니다.
Steven Lu

7

인텔 i3, i5 및 i7 기반 CPU에는 i7z모든 CPU 코어의 현재 속도를 보여주는 전용 도구가 있습니다.

매뉴얼 페이지에서 (설명) :

i7z는 옵션없이 i7z (ncurses 기반) 프로그램을 실행합니다. i7z는 Intel (Nehalems, Sandy Bridge 및 Ivy Bridge 포함)의 i3, i5 및 i7 기반 코어 프로세서에 대한 C 상태 및 온도를 인쇄합니다.

우분투 기반 배포판의 경우 다음 명령을 실행하여 설치할 수 있습니다.

sudo apt-get install i7z

그런 다음 실행하십시오 (도구는 sudo로 실행해야 함).

sudo i7z

4
인텔 CPU가있는 경우이 방법이 가장 좋습니다. cpuinfo를 Cating하면 잘못된 클럭 속도가 나타납니다. 참고로, "apt-get"에 대시를 넣는 것을 잊었습니다.
fgblomqvist

글쎄 ... 내 Xeon 프로세서와 함께 작동하지만 CPU가 두 개 (듀얼 Xeon 마더 보드가 있음) 때문에 출력이 깨집니다.
Alexis Wilke

4

인텔 코어 i7-4600U 프로세서를 지원하는 터보 부스트 기술을 . 기본 주파수는 2.10GHz이고 최대 터보 주파수는 3.30GHz입니다. 즉,

  • BIOS 설정 메뉴에서 Turbo Boost를 비활성화하면 CPU가 항상 2.10GHz에서 작동합니다.
  • 터보 부스트가 활성화되고 코어 중 하나만 작동하면 CPU는 최대 3.30GHz에서 작동합니다.
  • Turbo Boost가 활성화되어 있고 모든 코어가 작동중인 경우 CPU는 2.10GHz에서 작동합니다.

현재 주파수 얻기

터보 부스트가 활성화되어 있고 현재 주파수인지 확인하려면을 사용할 수 있습니다 cpupower frequency-info. 예를 들어, Turbo Boost가 활성화 된 구형 Intel Core i5-660의 경우 다음을 얻을 수 있습니다.

$ cpupower frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 1.20 GHz - 3.47 GHz
  available frequency steps: 3.47 GHz, 3.33 GHz, 2.53 GHz, 1.87 GHz, 1.20 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 1.20 GHz and 3.47 GHz.
              The governor "ondemand" may decide which speed to use
              within this range.
  current CPU frequency is 1.87 GHz.
  cpufreq stats: 3.47 GHz:82,67%, 3.33 GHz:0,00%, 2.53 GHz:0,00%, 1.87 GHz:0,06%, 1.20 GHz:17,28%  (3)
  boost state support:
    Supported: yes
    Active: yes
    25500 MHz max turbo 4 active cores
    25500 MHz max turbo 3 active cores
    25500 MHz max turbo 2 active cores
    25500 MHz max turbo 1 active cores

이 정보는 하드웨어 한계 ( 1.20 GHz - 3.47 GHz), 가능한 주파수 ( 3.47 GHz, 3.33 GHz, 2.53 GHz, 1.87 GHz, 1.20 GHz) 및 현재 주파수 ( 1.87 GHz)를 나타냅니다. 이러한 주파수에 대한 기술 정보는 Intel 웹 사이트 에서 찾을 수 있습니다 .

터보 부스트 비활성화시 주파수

Turbo Boost가 비활성화 된 상태에서 동일한 명령을 실행할 때의 차이점에 유의하십시오. boost state support섹션에서 Supported및 의 값은 다음 과 Active같습니다 no. 여기서 CPU는 항상 공칭 / 최소 값 (1.20Ghz)에있게됩니다.

$ cpupower frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 1.20 GHz - 3.47 GHz
  available frequency steps: 3.47 GHz, 3.33 GHz, 2.53 GHz, 1.87 GHz, 1.20 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 1.20 GHz and 3.47 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1.20 GHz.
  cpufreq stats: 3.47 GHz:40,86%, 3.33 GHz:0,01%, 2.53 GHz:0,06%, 1.87 GHz:0,22%, 1.20 GHz:58,85%  (493)
  boost state support:
    Supported: no
    Active: no
    25500 MHz max turbo 4 active cores
    25500 MHz max turbo 3 active cores
    25500 MHz max turbo 2 active cores
    25500 MHz max turbo 1 active cores

BIOS 또는 일부 Linux 옵션 / 명령을 사용하여 Turbo Boost를 비활성화 할 수 있습니다 . 커널 지원 / 활성화하여 비활성화 할 수 있습니다 /sys/devices/system/cpu/cpufreq/boost파일을.


Haypo에는 Intel p- 상태 드라이버, C- 상태, Turbo Boost 및 주파수 정보를 얻는 명령에 대한 자세한 정보 가있는 블로그 항목 이 있습니다.
Jaime

링크가 끊어졌습니다.
Mikhail T.

1
haypo 블로그 항목에 대한 링크가 끊어졌습니다. Victor Stinner의 노트 1 2 에서 사본을 찾을 수 있습니다 .
Jaime

4

CPU 주파수는 커널에 유지되지만 "끄기"상태 일 수 있습니다. 다음을 사용하여 볼 수 있습니다.

$ cd /sys/devices/system/cpu
$ paste <(cat cpu*/cpufreq/affected_cpus) <(cat cpu*/cpufreq/scaling_cur_freq) | column -s $'\t' -t
0  833914
1  800021
2  800086
3  800029
4  800036
5  800460
6  800118
7  800141

CPU를 알 필요가 없다면 더 짧은 방법은 다음을 사용하는 것입니다.

$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
1396354
800058
800050
800024
800005
800017
800001
1392006

이 방법은 Raspbian을 실행하는 라즈베리 파이에서 작동하는 것 같습니다
Jon

3

CPU에 대한 정보를 얻으려면 다음 명령을 입력하십시오.

dmidecode -t 4

2
Cuspy. 지금은 볼 4 개 ;-) 다른 번호 여기
vonbrand

또한 기계가 유휴 상태 일 때 현재 속도는 항상 많은 수 (3.7GHz)로보고되므로 "현재 속도"는 잘못된 것으로 보입니다.
ragerdl

@vonbrand 하나의 시계를 가진 사람은 몇 시인 지 알고 있습니다. 두 개의 시계를 가진 사람은 절대 확실하지 않습니다.
Kusalananda

0

정보를 사용하는 대상에 따라 다릅니다. cat / proc / cpuinfo`의 출력 라인은 "광고 된"속도, 브로셔의 속도 등입니다. 서버 A와 서버 B를 비교하는 경우 충분할 수 있습니다. 시스템에서 작업 부하를 모니터링하는 경우 질문에 대한 의견과 @ gad3r의 답변이 살펴볼 내용입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.