실시간으로 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 종료
728x90
반응형

'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

+ Recent posts