본문 바로가기
Develop/Server

[Linux] linux 인프라 지표 모니터링을 하기위한 명령어 top

by 코딩의성지 2021. 5. 26.

요즘 모니터링에 대한 관심도가 굉장히 높아졌다.

 

내가 자주 쓰는 linux 인프라 지표 모니터링 3가지 방법을 공유하려 한다.

 

top

먼저 이건 가장 기본적인 명령어이다. 이 명령어를 통해서 CPU나 메모리 상태를 확인할 수 있다. 그리고 시스템안에 존재하는 각 프로세스의 CPU와 메모리 사용 상태를 5초간격으로 업데이트하여 출력해준다.

 

간단하게 화면 구성을 설명 드리겠다

 

맨 첫줄에 

top - 13:28:02 up 1:08, 1 user, load average:0.00, 0.01, 0.03

이부분을 먼저 해석해보면

현재 서버시간은 13:28:02 이고(top - 13:28:02),

가동중이며 (up),

1시간 08분째 돌고 있고(1:08),

1 명의 유저가 사용중이며, (1 user),

부하율은 0.00, 0.01, 0.03 (load average:0.00, 0.01, 0.03) 이다. (보통 나는 맨 앞의 수치를 주로 본다.)

 

그 다음 줄도 해석해보자.

Tasks: 82 total, 2 running, 80 sleeping, 0 stopped, 0 zombie

이 부분은 프로세스에 대한 정보를 담고 있는 줄이다.

총 82개의 프로세스를 가동 중이고 (82 total),

2개의 프로세스가 실행 중이며 (2 running),

80개의 프로세스가 대기중이고 (80 sleeping),

0개의 프로세스가 멈춰있고(2 stopped),

0개의 프로세스가 좀비상태다(0 zombie)

 

다음 줄은 cpu 정보를 담고 있는데 이것도 해석해보면,

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

여기서 

us 는 Percentage of CPU time spent in user space. (유저레벨에서의 cpu 사용비율)
sy 는 Percentage of CPU time spent in kernel space.(시스템레벨에서의 cpu 사용비율)
ni 는 Percentage of CPU time spent on low priority processes. ( 프로세스의 우선순위 기본값보다 낮은 우선순위로 유저레벨에서 실행된 시간)
id 는 Percentage of CPU time spent idle. (idle의 cpu 사용 비율)
wa 는 Percentage of CPU time spent in wait (on disk). ( io를 기다리는 시간)
hi 는 Percentage of CPU time spent handling hardware interrupts. (인터럽트 핸들러에서 사용한 시간)
si 는 Percentage of CPU time spent handling software interrupts. (미뤄놓은 작업을 수행한 시간)

 

로 보시면 된다.

 

다음은 4~5째줄은 메모리에 대한 정보인데 이것도 해석을 해보자.

KiB Mem : 479604 total, 233984 free, 134808 used, 110812 buff/cache
KiB Swap : 2044 total, 2044 free, 0 used, 322340 avail Mem

 

위는 전체 메모리에 대한 내용이고, 아래는 스왑 메모리인데

total은 전체 메모리, free는 사용되지 않은 여유 메모리, used는 사용된 메모리, buff/cache는 버퍼나 캐싱된 메모리이다.

 

마지막으로 그 아래 내용을 보자. 

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

여기서 PID는 프로세스 ID를 의미하고

USER는 프로세스를 실행한 사용자 ID,

PR은 프로세스의 우선 순위,

NI는 NICE값(마이너스 일수록 우선순위가 높다 생각하시면됨)

VIRT는 가상 메모리의 사용량 (SWAP+RES)

RES는 Resident Size, 즉 현재 페이지가 상주하고 있는 크기

SHR은 분할된 페이지, 프로세스에 의해 사용된 메모리를 나눈 메모리 총합,

S는 프로세스의 상태 (S-sleeping, R-running, W-swapped out process, Z-zombies),

%CPU 는 프로세스가 사용하는 CPU 사용률,

%MEM은 프로세스가 사용하는 메모리의 사용률,

COMMAND 는 실행된 명령어 이다.

 

 

여기서 top을 사용할때 우리는 옵션을 사용할 수도 있다.

옵션 설명
-b 배치모드로 정보 출력
-d delay(초) 지정한 시간의 간격으로 정보 업데이트 하여 출력
-i idle 토글값 off일 경우, idle 프로세스나 좀비프로세스 정보 출력 x
-n num(초) 지정한 시간 만큼 업데이트 정보 출력 
-p pid 지정한 프로세스의 정보만 출력
-q 시간 간격 없이 계속 업데이트
-s 몇개의 대화식 명령 비활성화
-S 누적된 정보 출력

 

또한 top 실행 후 내부에서 사용할 수 있는 단축키 명령어도 있다.

명령어 설명
space 정보 업데이트
shift + p cpu 사용률 높은 프로세스 순서로 표시
shift + m 메모리 사용률 높은 프로세스 순서로 표시
shift + t 프로세스가 돌아가고 있는 순서로 표시
t 상단 cpu 표현 방식 변경
m 상단 메모리 표현 방식 변경
k 프로세스 종료
a 메모리 사용량에 따른 정렬
b 배치모드로 정보 출력
c 명령행, 프로그램이름 토글
h 도움말
n(#) 출력할 프로세스의 수 지정
s 출력할 정보의 업데이트 시간 지정
q top 종료

 

끝.

 

 

반응형

댓글