loop 프로그램을 돌려서, CPU %user가 100%가 되는 것을 확인한다.
** 이 실험은 <실습과 그림으로 배우는 리눅스 구조> 책의 35p 실습을 따라한 것입니다.
새로운 인스턴스에서 다음 명령어를 실행한다.(ex: ec2)
sar -P ALL 1 1
idle한 상태가 100%다.
int main(void) {
for(;;);
}
gcc -o loop loop.c
./loop &
같은 세션에서 cpu 지표를 확인하기 위해 loop.c 프로그램을 백그라운드로 실행했다. 만약 다른 세션에서 cpu 지표를 확인할 수 있다면 백그라운드로 실행하지 않아도 된다.
sar -P ALL 1 1
#include <unistd.h>
int main(void) {
for(;;) {
getppid();
}
}
gcc -o ppidloop ppidloop.c
./ppidloop &
sar -P ALL 1 1
%system 지표가 증가했다.
<실습과 그림으로 배우는 리눅스 구조> 34p
사용자 모드에서 프로세스를 실행하고 있는 시간의 비율은 '%user'와 '%nice'의 합계로 얻을 수 있습니다.
CPU 코어가 커널 모드에서 시스템 콜 등의 처리를 실행하고 있는 시간의 비율은 '%system'으로 얻을 수 있습니다. 이 데이터를 측정할 때, 모든 CPU 코어는 대부분의 시간 동안 %idle이 100에 가까운 값이었습니다.
'%idle'은 CPU 코어상에 프로세스도, 커널도 움직이고 있지 않은 idle 상태인 것을 의미합니다.