서버 운영 관리 [ Tip ]

차동훈 에반젤리스트

top 명령어

 

 

리눅스 시스템 상황을 실시간으로 모니터링 할때 사용하는 대표적인 명령어 이다.

윈도우의 작업관리자와 비슷한 기능을 하며 기본적으로는데몬별 CPU, RAM 사용량 등을 3초마다 실시간으로 확인 할 수 있다.

man page 를 보면 알 수 있지만 3초가 아닌 1초 단위로 화면 갱신을 원할경우 -d 옵션을 사용하자.

# top -d 1

 

 

top 명령어 사용해보기


 

 

명령어 실행

간단히 리눅스 시스템에서 'top' 라고 입력하면 된다.

 $  top

 

top 모니터링 화면이 열리게 된다. 다시 빠져나가는것은 'Ctrl + C' 버튼으로 다시 쉘프롬프트 화면으로 빠져나갈 수 있다.

top

 

아래 세부 단락 필드의 의미는 아래와 같다.

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

* PID : 프로세스 ID (PID)
* USER : 프로세스를 실행시킨 사용자 ID
* PRI : 프로세스의 우선순위 (priority)
* NI : NICE 값. 일의 nice value값이다. 마이너스를 가지는 nice value는 우선순위가 높음.
* VIRT : 가상 메모리의 사용량(SWAP+RES)
* RES : 현재 페이지가 상주하고 있는 크기(Resident Size)
* SHR : 분할된 페이지, 프로세스에 의해 사용된 메모리를 나눈 메모리의 총합.
* S : 프로세스의 상태 [ S(sleeping), R(running), W(swapped out process), Z(zombies) ]
* %CPU : 프로세스가 사용하는 CPU의 사용율
* %MEM : 프로세스가 사용하는 메모리의 사용율
* COMMAND : 실행된 명령어

 

그리고 아래 화면은 기본적으로 CPU 사용률이 가장 높은 프로세스 부터 출력이 된다.

시스템에 문제가 생긴 상태라면 CPU 사용률이 높은 프로세스 때문에 문제가 생겼을 가능성이 높으므로 상위 프로세스 부터 확인하는것이 좋다.

top1

필자도 top 명령어에서 각 항목이 무엇을 의미하는지 100% 정확히 알 수 없으며  중요한것은 부하가 발생하는 프로세스가 상단에 위치한다는것이다. 

제일 상단에 보면 5줄의 라인이 존재한며 시스템 전반적인 정보를 출력하고 있다. 

 

1번째 라인

top - 11:16:47 up 4 days, 18:58,  1 user,  load average: 0.15, 0.25, 0.17

 

2번째 라인

Tasks:  73 total,   1 running,  72 sleeping,   0 stopped,   0 zombie

 

 

3번째 라인

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

 

4번째 라인

Mem:   1502404k total,   298388k used,  1204016k free,    75628k buffers

 

5번째 라인

Swap:  2047996k total,        0k used,  2047996k free,   116540k cached