top 명령어
Linux를 다루는 운영자라면 서버 내 시스템 상황을 실시간으로 확인할 필요가 있습니다.
top 명령어는 이러한 모니터링을 진행할 때 사용하는 대표적인 명령어입니다.
Windows의 작업관리자와 비슷한 기능을 제공하기 때문에 기본적으로 top 명령어를 사용하면 데몬 별
CPU , RAM 사용량 등 3초마다 실시간으로 모니터링을 통해 서버 상태를 확인할 수 있습니다.
본 매뉴얼은 top 명령어로 모니터링을 설정하는 절차를 소개합니다.
※man page를 확인하면 아시겠지만 3초가 아닌 1초 단위로 변경을 희망할 경우 하단 명령어를 참조하시기 바랍니다.
# top -d 1
top 명령어 사용해보기
명령어 실행
터미널에서 'top' 라고 입력하시기 바랍니다.
$ top |
top 모니터링 화면이 열리게 되며, 다시 빠져나가는것은 'Ctrl + C' 버튼으로 다시 쉘프롬프트 화면으로 빠져나갈 수 있습니다.
아래 세부 단락 필드의 의미는 아래와 같습니다.
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 사용률이 높은 프로세스로 인해 문제가 발생했을 가능성이 높으므로 상위 프로세스부터 확인하시기 바랍니다.
top 명령어에서 중요한것은 부하가 발생하는 프로세스가 상단에 위치하므로, 상단을 주의깊게 확인할 필요가 있습니다.
제일 상단에 위치한 5줄의 라인은 시스템 전반적인 정보를 출력을 의미합니다.
자세한 내용은 하단에서 이어서 안내하도록 하겠습니다.
1번째 라인
top - 11:16:47 up 4 days, 18:58, 1 user, load average: 0.15, 0.25, 0.17 |
- 11:16:47 up 4 days, 18:58 : 좌측은 현재 시간을 의미하며, 오른쪽 up 뒤로 시스템 재시작(리부트)한 이후 시간을 의미
- 1 user : 현재 시스템에 로그인 한 사용자의 총합
- load average : 시스템의 부하률을 의미하며, 3개로 보여지는 것은 현재 값이며, 오른쪽으로 갈수록 과거의 값입니다. (최근 1분간의 시스템 평균 부하율, 최근 5분, 최근 15분)
2번째 라인
Tasks: 73 total, 1 running, 72 sleeping, 0 stopped, 0 zombie |
- Tasks : 시스템에서 실행중인 프로세스
- total : 현재 시스템에서 동작중인 총 프로세스의 수
- runnung : 현재 실행중인 프로세스의 수
- sleeping : 메모리에 적재된 예비 프로세스
- stopped : 현재 중지된 프로세스의 수
- 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 |
- CPU : 이용정보
- us : 이용중인 CPU 이용률
- sy : 시스템(kernel)이 이용하는 CPU 점유율
- ni : NICE정책에 의한 CPU 점유률
- id : CPU 미사용
- wa : 입출력 대기상태
- hi : 하드웨어 인터럽트 수
- si : 소프트웨어 인터럽트 수
4번째 라인
Mem: 1502404k total, 298388k used, 1204016k free, 75628k buffers |
물리적인 메모리 사용량을 보여줍니다.
- total : 물리적인 메모리 총 용량
- used : 현재 시스템에서 사용하고 있는 메모리 용량
- free : 남아있는 메모리 용량 (메모리 총 용량에서 사용중인 메모리 양을 뺀 값)
- buffers : 프로세스 사이에서 공유될 수 있는 메모리 용량
5번째 라인
Swap: 2047996k total, 0k used, 2047996k free, 116540k cached |
- 물리적인 메모리가 전부 사용중일때 HDD의 일부를 메모리처럼 추가 사용하도록 합니다.