CPU %user %system 상태 확인하기

jinwook han·2023년 3월 5일
0

loop 프로그램을 돌려서, CPU %user가 100%가 되는 것을 확인한다.

** 이 실험은 <실습과 그림으로 배우는 리눅스 구조> 책의 35p 실습을 따라한 것입니다.

idle 상태 cpu 확인

새로운 인스턴스에서 다음 명령어를 실행한다.(ex: ec2)

sar -P ALL 1 1

idle한 상태가 100%다.

user 상태 cpu 확인

  1. loop.c 파일을 만든다.
int main(void) {
        for(;;);
}
  1. loop.c 프로그램을 컴파일한다.
gcc -o loop loop.c
  1. loop.c 프로그램을 백그라운드로 실행한다.
./loop &

같은 세션에서 cpu 지표를 확인하기 위해 loop.c 프로그램을 백그라운드로 실행했다. 만약 다른 세션에서 cpu 지표를 확인할 수 있다면 백그라운드로 실행하지 않아도 된다.

  1. sar로 cpu 지표를 확인한다.
sar -P ALL 1 1

%user가 100%다.

system 상태 확인

  1. ppidloop 파일을 만든다.
#include <unistd.h>
  
int main(void) {
        for(;;) {
                getppid();
        }
}
  1. 컴파일한다.
gcc -o ppidloop ppidloop.c
  1. 실행한다.
./ppidloop &
  1. sar로 cpu 지표를 확인한다.
sar -P ALL 1 1

%system 지표가 증가했다.

책에 나온 내용

<실습과 그림으로 배우는 리눅스 구조> 34p

사용자 모드에서 프로세스를 실행하고 있는 시간의 비율은 '%user'와 '%nice'의 합계로 얻을 수 있습니다.

CPU 코어가 커널 모드에서 시스템 콜 등의 처리를 실행하고 있는 시간의 비율은 '%system'으로 얻을 수 있습니다. 이 데이터를 측정할 때, 모든 CPU 코어는 대부분의 시간 동안 %idle이 100에 가까운 값이었습니다.

'%idle'은 CPU 코어상에 프로세스도, 커널도 움직이고 있지 않은 idle 상태인 것을 의미합니다.

0개의 댓글