실시간으로 CPU 사용을 체크해 주는 명령어임.
시스템의 프로세스와 메모리 사용 상태, 리눅스 서버의 성능을 5초간격으로 업데이트 하면서 화면에 출력.
어떤 프로세스가 CPU를 과도하게 잡고있는디 파악할 때 필요함.
사용법
top [option]
OPTION | DESC |
---|---|
-b | 배치모드로 정보 출력. |
-d delay | delay 값 만큼 초 단위로 정보를 업데이트. (기본 5) |
-i idle | 토글 값이 off 일 때, idle 프로세스나 좀비 프로세스 정보를 출력하지 않음. |
-n num | num 시간 만큼 업데이트 정보를 출력함. |
-p pid | 지정한 pid의 프로세스 정보만 출력. |
-q | 시간의 간격 없이 계속하여 업데이트 정보를 출력. |
-s | 몇 개의 대화식 명령을 비활성화.(뭘?) |
-S | 누적된 정보 출력. |
top
top - 16:33:32 up 19 days, 1:39, 1 user, load average: 0.00, 0.02, 0.00
Tasks: 272 total, 1 running, 271 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.1%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16291780k total, 16078316k used, 213464k free, 220104k buffers
Swap: 25165816k total, 0k used, 25165816k free, 15329424k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16584 nobody 20 0 2023m 17m 3592 S 1.3 0.1 120:06.69 httpd
2181 root 20 0 121m 2264 1856 S 0.3 0.0 0:40.52 nvcmgr
15970 nobody 20 0 2023m 13m 3584 S 0.3 0.1 30:17.18 httpd
16052 nobody 20 0 2023m 14m 3584 S 0.3 0.1 34:41.69 httpd
29604 root 20 0 15168 1384 948 R 0.3 0.0 0:00.04 top
1 root 20 0 19364 1540 1232 S 0.0 0.0 0:03.10 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.04 kthreadd
...
옵션은 많지만 보통은 옵션 없는 명령이나 pid 정도만 확인함.
실행 후 h 를 입력하면 사용할 수 있는 단축키를 확인할 수 있음.
표출 데이터 : 첫 번째 줄
리눅스 컴퓨터의 정보와 시스템 부하율를 출력함.top - 16:33:32 up 19 days, 1:39, 1 user, load average: 0.00, 0.02, 0.00
- 16:33:32 :
시스템 현재 시간 - up 19 days, 1:39 :
시스템이 부팅된 후 현재까지 운영된 시간. - 1 user :
현재 로그인된 사용자의 수. - load average :
0.00, 0.02, 0.00 최근 1분, 5분, 15분 각각의 시스템 평균 부하율.
표출 데이터 : 두 번째 줄
프로세스들의 종합적인 상황정보 출력.Tasks: 272 total, 1 running, 271 sleeping, 0 stopped, 0 zombie
- Tasks: 272 total :
전체 실행중인 프로세스 수. - 1 running :
현재 실행된 프로세스 수. - 271 sleeping :
유휴상태에 있는 프로세스 수. - 0 stopped :
종료된 프로세스 수. - 0 zombie :
좀비 프로세스 수.- 대부분의 프로세스는 부모프로세스가 종료되면 자식프로세스들은 자동종료됨.
부모프로세스가 종료되었음에도 남아있는 자식프로세스를 좀비프로세스라고 하며, 시스템이 느려지는 원인이 됨.
대부분의 좀비 프로세스는 init 프로세스에 의해 관리되며, kill 명령으로 강제종료 시켜도 무방함.
- 대부분의 프로세스는 부모프로세스가 종료되면 자식프로세스들은 자동종료됨.
표출 데이터 : 세 번째 줄
CPU의 사용 및 실행 상태를 출력.Cpu(s): 0.2%us, 0.1%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
- Cpu(s): 0.2%us :
사용자가 실행시킨 프로세스들의 CPU 사용율. - 0.1%sy :
시스템에서 사용하는 프로세스들의 CPU 사용율. - 0.0%ni :
noce 정책에 의해 사용되고 있는 CPU 사용율. - 99.8%id :
사용되지 않고 남은 CPU 사용율. - 0.0%wa :
입출력 대기상태의 CPU 사용율. - 0.0%hi :
IRQs에 사용된 CPU. - 0.0%si :
softIRQs에 사용된 CPU. - 0.0%st :
다른 인스턴스 실행에 주어진 time, steal 값
표출 데이터 : 네 번째 줄
메모리 사용 상태 출력.Mem: 16291780k total, 16078316k used, 213464k free, 220104k buffers
- Mem: 16291780k total :
실제메모리의 사용량. - 16078316k used :
프로세스에 의해 사용되고 있는 메모리 사용량. - 213464k free :
사용되지 않고 남아있는 메모리 양. - 220104k buffers :
버퍼링된 메모리 양.
표출 데이터 : 다섯 번째 줄
스왑 메모리의 상태 출력.Swap: 25165816k total, 0k used, 25165816k free, 15329424k cached
- Swap: 25165816k total :
전체 메모리 스왑 양. - 0k used :
프로세스에 의해 사용된 스왑메모리 양. - 25165816k free :
남아있는 스왑메모리양. - 15329424k cached :
캐싱 메모리양.
현재 시스템의 스왑메모리 운용 상황이므로 스왑메모리가 많이 사용되고 있다라는 의미는 실제 메모리가 부족하는 것의 증거임.
표출 데이터 : 여섯 번째 줄
전체 개별 프로세스들의 시스템 자원 사용현황과 실행상태를 파악할 수 있음.PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- PID :
해당 프로세스의 유일한 프로세스 번호(Process ID, 키 값) - USER :
프로세스를 실행시킨 사용자. - PR :
프로세스의 우선순위(Priority, 키값 : H) - NI :
프로세스의 NICE 값 (Nice Value, 키값 : I), Minus(-)를 가질수록 높은 우선순위를 갖고, Plus(+)를 가질수록 낮은 우선순위를 가짐.
0 값은 우선순위가 적용되지 않음. - VIRT :
해당 프로세스가 사용한 가상메모리의 총량 (Virtual(kb), 키값 : o) - RES :
해당 프로세스의 물리적인 메모리 사용량 (Resident Size(kb), 키값 : q) - SHR :
해당 프로세스에 의해 사용된 공유 메모리의 총량(Shared Mem Size(kb), 키값 : t) - S :
프로세스의 상태를 나타냄.- S : sleeping
- R : running
- W : swapped out process
- Z : zombies
- %CPU :
프로세스가 사용하는 CPU 사용율. - %MEM :
프로세스가 사용하는 메모리 사용율. - COMMAND :
실행된 명령어.
top 실행 후 단축키 명령어
CMD | DESC |
---|---|
space | 정보 업데이트 |
shift + p | CPU 사용율 내림차순 정렬 |
shift + m | 메모리 사용율 내림차순 정렬 |
shift + t | 프로세스 작동 시간 내림차순 정렬 |
k pid | 프로세스 종료 |
a | 메모리 사용량에 따라 정렬 |
b | batch 모드 |
c | cli, 프로그램 이름 토글 |
h | 매뉴얼 |
n or # | 출력할 프로세스 수 지정 |
s | 출력할 정보의 업데이트 시간 조정 |
q | top 종료 |
'OS > Linux' 카테고리의 다른 글
[Linux] There are stopped jobs (0) | 2021.05.28 |
---|---|
[Linux] 인터넷 속도 확인 (0) | 2021.05.28 |
[Linux] 리눅스 서버 60초 안에 상황 파악하기 (0) | 2021.05.06 |
[Linux] 리눅스 버전 확인하기 (0) | 2021.05.06 |
[Linux] find 명령어 (0) | 2021.05.03 |