[Linux] 리눅스 서버관리 명령어 top 내용 파악하기

2023. 1. 24. 16:08IT

리눅스 TOP 명령 내용 파악하기

 

리눅스를 통해 서버를 운영한다보면

서버의 상태를 알아봐야 할때가 있다!!

 

물론 명령어 1개로 서버의 모든 상태를 알아볼수는 없지만

대략전인 서버의 상태를 알아보기에는

'TOP'이라는 명령어를 한번 활용해 보면 좋을것이다!!!

 

우선 자신의 환경정보에 따라 약간의 차이가 있을 수 있다.

그러니 환경정보에 대해 먼저 알아보자!!

 

환경정보 :

Kernel 버전 : uname -r (5.3.0)
운영체제 배포판 버전 : lsb_release -a (Ubuntu 18.04)
TOP 버전 : top -v | grep head -1 (3.3.12)

 

 

나는 이 명령어에 대해 공부하기 위해

'리눅스 읽어주는 남자'님의 유튜브를 참고하였다!!

 

 

top 명령어

 

1) 시스템 정보 (상단에 표시되는 정보)

1. 시간정보 :

현재시간, 컴퓨터 실행시간

(uptime 명령어와 동일한 결과)
==> top - 13:51:20 (현재시간) up 16:11 (컴퓨터 실행시간)

 


2. Load Average :

시스템 부하정도를 나타내는 1, 5, 15분 시스템 부하 평균값

(실행중인 프로세스 'R'과 디스크 I/O 처리완료를 기다리는 프로세스 'D'의 영향을 많이 받는다.)


==> load average : 0.15 0.03 0.01

(평균값은 지수 이동 평균값(EMA)값을 사용하여 추출한다)
==> CPU 싱글코어 기준 : 0.5 / 1.0 / 1.7 (50% / 100% / 170% 부하)

(코어갯수 명령어 : nproc)

 


3. Task (프로세스) 정보 :

Tasks: 117 total (현재 작동중인 프로세스 갯수),

1 running (현재 실행중인 프로세스 갯수),

116 sleeping (현재 대기중인 프로세스 갯수),

0 stopped (Ctrl+Z와 같이 정지된 프로세스 갯수),

0 zombie (좀비상태인 프로세스 갯수)


==> 'I'는 idle(게으른) 프로세스로 합계에 표현되지 않는다.

(프로세스는 일반적으로 IO기반의 일과 CPU기반의 일을 번갈아 수행하는데 IO기반의 일을 하게 될 때 idle 상태)

 


4. CPU 사용율 (%)


us :프로세스의 유저 영역에서 높은 우선순위의 프로세스 CPU 사용률

sy : 프로세스의 커널 영역에서의 CPU 사용률

ni : 프로세스의 우선순위 설정에 사용하고 낮은 우선순위의 프로세스 CPU 사용률
id : 사용하고 있지 않는 비율로 시스템의 여유로운 정도를 확인
wa : IO가 완료될때까지 기다리고 있는 CPU 비율로 높아진 경우

네트워크, 디스크에서 데이터 처리가 늦어지고 있다는 의미
hi : 하드웨어 인터럽트에 사용되는 CPU 사용률로 인터럽트 전반부처리로 빠른처리를 담당
si : 소프트웨어 인터럽트에 사용되는 CPU 사용률로 인터럽트 후반부처리로 지연처리를 담당
st : CPU를 VM에서 사용하여 대기하는 CPU 비율

 


5. MEM 사용율 (%) (free 명령어와 동일한 결과)
total : 총 메모리 공간
free : 남는 메모리 공간
used : 사용중인 메모리 공간
buff/cache : 디스크에 있는 내용을 빨리 읽고 쓰기위해 메모리에 유지하는 공간
available : 프로세스가 처음시작할때 사용가능한 메모리 공간으로 회수하면 얻을수있는 공간 또한 포함
swap : 메모리의 내용을 저장해둘수있는 Disk공간

 

 

2) 프로세스 세부정보 (중하단에 표시되는 정보)

1. PID : 프로세스 ID


2. USER : 해당 프로세스를 실행한 USER 이름 또는 효과를 받는 USER의 이름


3. PR : 커널에 의해서 스케줄링되는 우선순위

( nice + 20 )


4. NI : nice(친절도)라는 값

(친절도가 높으면 양보를 많이 해주기 때문에 우선순위가 낮음)


5. VIRT : 가상메모리공간


6. RES : RAM에서 사용중인 메모리의 크기

(실제 사용중인 물리메모리 공간)


7. SHR : 다른 프로세스와의 공유메모리(Shared Memory) 공간


8. S : 프로세스의 현재 상태
- D = uninterruptible sleep (디스크 I/O 처리대기)
- R = running (실행중)
- S = sleeping (대기중)
- I = Idle
- T = stopped by job control signal
- t = stopped by debugger during trace
- Z = zombie


9. %CPU : CPU 사용율


10. %MEM : 메모리 사용율


11. TIME+ : 프로세스가 사용한 토탈 CPU 시간


12. COMMAND : 해당 프로세스를 실행한 커맨드를 나타냅니다.