서버 운영 관리 [ Tip ]

top 명령어

Linux를 다루는 운영자라면 서버 내 시스템 상황을 실시간으로 확인할 필요가 있습니다.

top 명령어는 이러한 모니터링을 진행할 때 사용하는 대표적인 명령어입니다.


Windows의 작업관리자와 비슷한 기능을 제공하기 때문에 기본적으로 top 명령어를 사용하면 데몬 별 

CPU , RAM 사용량 등  3초마다 실시간으로 모니터링을 통해 서버 상태를 확인할 수 있습니다.


본 매뉴얼은 top 명령어로 모니터링을 설정하는 절차를 소개합니다.

※man page를 확인하면 아시겠지만 3초가 아닌 1초 단위로 변경을 희망할 경우 하단 명령어를 참조하시기 바랍니다.

# 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 명령어에서 중요한것은 부하가 발생하는 프로세스가 상단에 위치하므로, 상단을 주의깊게 확인할 필요가 있습니다. 

제일 상단에 위치한 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