• turbostat 명령어는 X86 프로세서의 프로세서 topology, frequency, idle 전력 상태 통계, 온도 및 전력을 출력
  • turbostat 명령어는 전체 시스템의 카운터 결과 요약을 출력하고 제목 아래에 각 카운터 결과를 5 초마다 출력
  • turbostat 명령어는 kernel-tools 패키지에서 제공
  • 전력 사용량이나 유휴 시간이 비효율적인 서버 식별 가능
  • 시스템에서의 시스템 관리 인터럽트(SMI)의 비율 식별 가능
  • 전력 관리 튜닝 효과 확인

 

옵션

1. --Dump 옵션

  • raw 카운터 값을 표시

2. --debug 옵션

  • 추가 시스템 구성 정보를 표시
  • 내부 터보 스탯 디버그 정보가 활성화됨

3. --interval [seconds] 옵션

  • --interval 옵션 뒤에 seconds 값을 통해 출력되는 값을 설정
  • default 값은 5.0초

4. --out [output_file] 옵션

  • Turbostat 출력은 지정된 output_file에 기록
  • 파일이 이미 존재하면 잘리고 존재하지 않으면 생성

5. --Summary 옵션

  • 각 간격에 대해 출력을 1줄 시스템 요약으로 제한

 

turbostat 명령어 실행 결과

$ turbostat
Package Core    CPU     Avg_MHz Busy%   Bzy_MHz TSC_MHz IRQ     SMI     POLL    C1      C1E     C6      POLL%   C1%     C1E%    C6%     CPU%c1  CPU%c6  CoreTmp PkgTmp  PkgWatt RAMWatt PKG_%   RAM_%
-       -       -       0       0.05    810     2195    2285    0       0       580     140     1364    0.00    0.57    0.40    98.98   2.96    97.00   41      43      41.72   39.62   0.00    0.00
0       0       0       0       0.05    801     2195    40      0       0       0       2       37      0.00    0.00    0.01    99.94   0.78    99.17   37      39      21.61   21.51   0.00    0.00
0       0       20      0       0.02    805     2195    30      0       0       0       2       20      0.00    0.00    0.01    99.97   0.82

 

출력 필드 설명

필드명 설명
usec
  • 각 CPU에 대해 카운터 수집 중 경과된 시간(마이크로초)
  • 기본적으로 비활성화
  • --enable usec 또는 --debug로 활성화 가능
Time_Of_Day_Seconds
  • 각 CPU 별 gettimeofday(2) 값
  • 측정 종료 시 시간
  • 기본적으로 비활성화
  • --enable Time_Of_Day_Seconds 또는 --debug로 활성화 가능
Core
  • 프로세서 코어 번호
CPU
  • Linux CPU 번호
Package
  • 프로세서 패키지 번호
  • 패키지란 두 개 이상의 독립 코어를 단일 집적 회로로 이룰 때 사용
Avg_MHz
  • 평균 클럭 속도
  • 실행된 사이클 수를 경과 시간으로 나눈 값
Busy%
  • CPU가 명령을 실행하는 시간(백분율)
Bzy_MHz
  • CPU가 idel 상태가 아닌 동안의 평균 클럭 속도
TSC_MHz
  • TSC가 실행 된 평균 MHz
  • TSC는 Time Stamp Counter의 약어
  • CPU 차원에서 제공되는 카운터
  • CPU가 리셋된 이후 동작한 CPU 사이클의 수
IRQ
  • 측정 주기 동안 CPU가 처리한 인터럽트 수
  • /proc/interrupts 이용
SMI
  • 측정 주기 동안 CPU를 지원하는 SMI 인터럽스 수
  • CPU 단위 이지만 모든 프로세서에서 SMI가 트리거 되기 때문에 모든 CPU 값이 동일해야 함
  • SMI는 System Management Interrupts의 약어
C1, C2, C3...
  • 측정 주기 동안 C1, C2, C3 idle 상태를 요구한 횟수
  • c0: CPU가 켜져 있고 미작동 상태
  • c1: 자동 정지, 프로세서가 명령을 수행 하지는 않지만 실행 상태로 즉각 돌아갈 수 있음
  • c2: 스톱 클럭, 프로세서는 몯믄 소프트웨어 표시 상태를 유지 하지만 깨우기에 시간이 더 걸림
  • c3: 딥 슬립, 프로세서는 캐시의 일관성을 유지할 필요 없지만 다른 상태 유지 관리
  • c4: 더 깊은 슬립, VCC 감소, VCC ==> main cpu voltage(전압)
  • dc4: 더 깊은 c4 슬립 VCC 감소
%c1, %c2, %c3
  • 프로세서가 C1, C2, C3 상태였던 비율
CPU%c1, CPU%c2,
CPU%c3
  • 각 idle 상태로 있는 비율
  • H/W residency counter에서 획득 한 값
CoreTmp
  • Core 당 디지털 열 세선에 의해 보고 된 섭씨 온도
PkgTtmp
  • 패키지 당 패키지 열 모니터에 의해 보고 된 섭씨 온도
GFX%rc6
  • 측정 주기 동안 GPU가 렌더링 c6 상태에 있는 시간(백분율)
  • /sys/class/drm/card0/power/rc6_residency_ms 에서 획득
GFXMHz
  • 측정이 끝날 시점의 sysfs의 스냅샷
  • /sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz 에서 획득
Pkg%pc2, Pkg%pc3,
Pkg%pc6, Pkg%pc7
  • H/W 패키지 idle 상태 비율(백분율)
  • H/W residency counter에서 획득
PkgWatt
  • 전체 패키지에서 소비한 전력량(Watt)
CorWatt
  • 패키지의 core에서 소비한 전력량(Watt)
GFXWatt
  • 패키지의 그래픽 부분에서 소비한 전력량(Watt)
  • 클라이언트 프로세서에서만 사용 가능
RAMWatt
  • DRAM DIMMS에서 소비한 전력량(Watt)
  • 서버 프로세서에서만 사용 가능
PKG_%
  • RAPL throttling이 패키지에서 활성화 된 비율
  • RAPL는 Running Average Power Limit의 약어
RAM_%
  • RAPL throttling이 DRAM에서 활성화 된 비율

 

 

※ 참고

1. SMI (System Management Interrupt)

  • SMI를 통해 하드웨어가 트리거됨
  • 프로세서 칩에 물리적 핀(Pin)이 있음
  • SMI (System Management Interrupt)를 활성화되면 프로세서가 SMM으로 들어가게됨

 

2. gettimeofday(2) 함수

  • 1970-01-01 00:00:00 +0000 (UTC) 이후의 현재까지의 경과된 초와 micro초(백만분의 1초) 값을 얻는 함수
  • 정밀한 시간 정보가 필요한 경우에 사용
  • tz(timezone) 정보는 사용하지 않으므로 무시됨

 

+ Recent posts