top 명령어 (실시간 CPU 사용률 체크)

Posted by ironmask84
2017. 8. 4. 16:52 나는 프로그래머다!/Linux



리눅스 명령어 중에 'top' 라는 것이 있습니다.

실시간으로 CPU 사용률 체크를 해주는 도구인데요.

리눅스를 사용하는 디바이스의 성능이나 리눅스 서버의 성능을 체크할 때 매우 유용합니다.

어떤 프로세스가 CPU를 과다하게 잡고 있는지 분석이 가능하지요 :)

기본적인 실행화면은 아래와 같습니다.


맨 윗줄부터

16:25:10 현재 서버의 시간

1user : 한명의 사용자가 접속

load average : 부하율


tasks 에서 259 total은 257개의 프로세스가 가동중

2 running 2개의 프로세스가 실행중

257 sleeping : 257개의 프로세스가 대기중

0 stopped : 0개의 프로세스가 멈춤

0 zombie : 0개의 프로세스가 좀비상태


-- CPU --

%us  : 유저 레벨에서 사용하고 있는 CPU의 비중

%sy : 시스템 레벨에서 사용하고 있는 CPU비중

%id : 유휴 상태의 CPU 비중

%wa : 시스템이 I/O 요청을 처리하지 못한 상태에서의 CPU idle 상태인 비중


-- 메모리 --

Mem:   32946200total,  25504432k used,   7441768k free,  53460k buffers 

전체 물리적인 메모리, 사용중인 메모리(used), 사용되지 않는 여유 메모리(free), 버퍼된 메모리(buffers)

Swap:  17101184k total,    11708k used,  17089476k free,  22014132k cached 

전체 스왑 메모리, 사용중인 스왑 메모리, 남아있는 스왑메모리, 캐싱메모리



-- 프로세스 상태 --

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 : 실행된 명령어


-- top 실행후 명령어 --

 shift + p

 CPU 사용률이 높은 프로세스 순서대로 표시

 shift + m

 메모리 사용률이 높은 프로세스 순서대로 표시

 shift + t

 프로세스가 돌아가고 있는 시간 순서대로 표시

 - k

 프로세스  kill  - k 입력 후 종료할 PID 입력 signal을 입력하라고 하면 kill signal인 9를 입력

 - a

 메모리 사용량에 따라 정렬

 - b

 Batch 모드 작동

 - c

 명령행/프로그램 이름 토글

 - d

 지연 시간 간격은 다음과 같다. -d ss. tt (seconds.tenths)

 - h 

 도움말 

 - H

 스레드 토글

 - i

 유휴 프로세스 토글

 - m

 VIRT/USED 토글

 - M

 메모리 유닛 탐지

 - n

 반복 횟수 제한 : -n number

 - p

 PID를 다음과 같이 모니터 : -pN1 -pN2 ... or -pN1, N2 [, ...] 

 - s

 보안 모드 작동

 - S

 누적 시간 모드 토글

 - u

 사용자별 모니터링 : -u somebody

 - U

 사용자별 모니터링 : -U somebody

 - v

 version

 space bar

 refresh

 - u

 입력한 유저의 프로세스만 표시 - which u

 숫자 1

 CPU Core별로 사용량을 보여준다.