본문 바로가기

리눅스

top 명령어

728x90

top 명령어

top 명령어는 리눅스와 UNIX 기반 운영 체제에서 시스템의 상태와 프로세스의 성능을 실시간으로 모니터링하는 유용한 명령어입니다.

top 명령어의 구문

top [옵션]
  • 주요 옵션
    • -d [초] : 화면 갱신 간격을 설정합니다. 초당 업데이트 간격을 지정합니다. 예: top -d 5는 5초마다 업데이트합니다.
    • -p [PID] : 특정 프로세스의 상세 정보만 표시합니다. 예: top -p 1234는 PID가 1234인 프로세스만 표시합니다.
    • -n [표시할 프로세스 수] : 화면에 표시할 프로세스 수를 제한합니다. 예: top -n 10는 상위 10개 프로세스만 표시합니다.
    • q : top을 종료합니다.
    • h : 도움말을 표시합니다.
top
top - 15:32:31 up 37 days, 20:37,  1 user,  load average: 0.14, 0.08, 0.13
Tasks: 184 total,   1 running, 144 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.4 us,  1.0 sy,  0.0 ni, 92.1 id,  0.0 wa,  0.0 hi,  0.0 si,  1.5 st
KiB Mem :  3977792 total,   155060 free,  3432588 used,   390144 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   299728 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 1520 chrony    20   0   43552  19636  11632 S   4.3  0.5 340:27.26 postgres
 1337 ec2-ins+  20   0  296740  54412   3800 S   4.0  1.4 346:26.32 gitlab-exporter
20025 ec2-ins+  20   0 1824904 973172   6396 S   2.3 24.5   1314:30 bundle
32733 rngd      20   0   82164  10628   2712 S   2.3  0.3 661:49.28 redis-server
  641 ec2-ins+  20   0  923636 687996   4976 S   0.3 17.3   7:55.81 bundle
 1339 rngd      20   0 1170376  12116   4384 S   0.3  0.3  13:34.34 redis_exporter
 1350 992       20   0 4337512 239680  19664 S   0.3  6.0 344:53.51 prometheus

top 필드 설명

top - 15:32:31 up 37 days, 20:37,  1 user,  load average: 0.14, 0.08, 0.13
Tasks: 184 total,   1 running, 144 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.4 us,  1.0 sy,  0.0 ni, 92.1 id,  0.0 wa,  0.0 hi,  0.0 si,  1.5 st
KiB Mem :  3977792 total,   155060 free,  3432588 used,   390144 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   299728 avail Mem
  • 1 Line
    • 15:32:31 : 현재 시간을 나타냅니다. 시, 분, 초 순서로 표시됩니다.
    • up 37 days, 20:37 : 시스템의 부팅 시간을 나타냅니다. 시스템이 부팅된 후 경과한 시간이며, "일", "시간:분" 형식으로 표시됩니다.
    • 1 user : 현재 로그인한 사용자 수를 나타냅니다.
    • load average: 0.14, 0.08, 0.13 : 시스템 부하 평균값을 나타냅니다. 각 숫자는 1, 5 및 15 분 동안의 평균 부하를 나타냅니다. 일반적으로 부하가 증가하면 시스템이 혼잡하거나 과부하 상태에 있음을 나타냅니다.
  • 2 Line
    • Tasks : 시스템에서 실행 중인 작업의 정보를 보여줍니다. "total"은 총 작업 수를 나타내며, "running"은 실행 중인 작업 수, "sleeping"은 대기 중인 작업 수, "stopped"는 중지된 작업 수, "zombie"는 좀비 프로세스 수를 나타냅니다.
  • 3 Line
    • %Cpu(s) : CPU 사용량을 백분율로 표시합니다. "us"는 사용자 모드에서 CPU 사용량, "sy"는 시스템 모드에서 CPU 사용량, "ni"는 nice 값에 따라 조정된 CPU 사용량, "id"는 유휴 CPU 백분율, "wa"는 대기 중인 I/O 연산의 CPU 사용량, "hi"는 하드웨어 인터럽트 CPU 사용량, "si"는 소프트웨어 인터럽트 CPU 사용량, "st"는 스틸 시간(가상화 환경에서 사용)을 나타냅니다.
  • 4 Line
    • KiB Mem : 시스템 메모리 (RAM) 사용 정보를 표시합니다. "total"은 총 메모리 크기, "free"는 사용 가능한 메모리, "used"는 사용 중인 메모리, "buff/cache"는 버퍼와 캐시에 사용되는 메모리 양을 나타냅니다.
  • 5 Line
    • KiB Swap : 스왑 메모리 사용 정보를 표시합니다. "total"은 총 스왑 메모리 크기, "free"는 사용 가능한 스왑 메모리, "used"는 사용 중인 스왑 메모리, "avail Mem"는 사용 가능한 물리적 메모리 양을 나타냅니다.
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
20025 ec2-ins+  20   0 1824904 999428   5272 S  10.0 25.1   1314:39 bundle
 1520 chrony    20   0   43552  19520  11516 S   4.0  0.5 340:28.61 postgres
 1337 ec2-ins+  20   0  296740  53820   3316 S   3.7  1.4 346:27.72 gitlab-exporter
32733 rngd      20   0   82164  10304   2452 S   3.0  0.3 661:52.09 redis-server
 1350 992       20   0 4337512 240776  17488 S   1.7  6.1 344:55.28 prometheus
  • PID (Process ID): 프로세스의 고유한 식별자인 프로세스 ID입니다.
  • USER: 프로세스를 실행한 사용자의 이름 또는 ID입니다.
  • PR (Priority): 프로세스의 우선순위 레벨입니다.
  • NI (Nice): 프로세스의 "nice" 값으로, 우선순위 조정에 사용됩니다.
  • VIRT (Virtual Memory): 프로세스가 사용하는 가상 메모리의 총 크기입니다.
  • RES (Resident Memory): 물리적 메모리(RAM)에 상주하는 메모리 크기입니다.
  • SHR (Shared Memory): 여러 프로세스가 공유하는 메모리 크기입니다.
  • S (%CPU): 프로세스가 CPU를 사용한 백분율입니다.
  • MEM (%MEM): 프로세스가 시스템 메모리에서 사용하는 백분율입니다.
  • TIME+ (CPU Time): 프로세스가 CPU를 사용한 총 시간입니다.
  • COMMAND (Command): 프로세스를 실행한 명령어 또는 프로그램의 이름입니다.
728x90
  • top 명령 실행시 추가할 수 있는 옵션
    • (top) -d [sec] : 설정된 초단위로 Refresh
    • (top) -c : command뒤에 인자값 표시
  • top 명령 실행 후 사용할 수 있는 옵션
    • shift + t : 실행된 시간이 큰 순서로 정렬
    • shift + m : 메모리 사용량이 큰 순서로 정렬
    • shift + p : cpu 사용량이 큰 순서로 정렬
    • l(소 문자엘) : uptime line(첫번째 행)을 표시 / 비표시
    • space bar : Refresh
    • u : 입력한 유저 소유의 Process만 표시
    • shift + b : 상단의 uptime 및 기타 정보값을 블락선택해 표시
Fields Management for window 1:Def, whose current sort field is %CPU
   Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,
   'd' or <Space> toggles display, 's' sets sort.  Use 'q' or <Esc> to end!

* PID     = Process Id             nsUSER  = USER namespace Inode
* USER    = Effective User Name    nsUTS   = UTS namespace Inode
* PR      = Priority
* NI      = Nice Value
* VIRT    = Virtual Image (KiB)
* RES     = Resident Size (KiB)
* SHR     = Shared Memory (KiB)
* S       = Process Status
* %CPU    = CPU Usage
* %MEM    = Memory Usage (RES)
* TIME+   = CPU Time, hundredths
* COMMAND = Command Name/Line
  PPID    = Parent Process pid
  UID     = Effective User Id
  RUID    = Real User Id
  RUSER   = Real User Name
  SUID    = Saved User Id
  SUSER   = Saved User Name
  GID     = Group Id
  GROUP   = Group Name
  PGRP    = Process Group Id
  TTY     = Controlling Tty
  TPGID   = Tty Process Grp Id
  SID     = Session Id
  nTH     = Number of Threads
  P       = Last Used Cpu (SMP)
  TIME    = CPU Time
  SWAP    = Swapped Size (KiB)
  CODE    = Code Size (KiB)
  DATA    = Data+Stack (KiB)
  nMaj    = Major Page Faults
  nMin    = Minor Page Faults
  nDRT    = Dirty Pages Count
  WCHAN   = Sleeping in Function
  Flags   = Task Flags <sched.h>
  CGROUPS = Control Groups
  SUPGIDS = Supp Groups IDs
  SUPGRPS = Supp Groups Names
  TGID    = Thread Group Id
  ENVIRON = Environment vars
  vMj     = Major Faults delta
  vMn     = Minor Faults delta
  USED    = Res+Swap Size (KiB)
  nsIPC   = IPC namespace Inode
  nsMNT   = MNT namespace Inode
  nsNET   = NET namespace Inode
  nsPID   = PID namespace Inode

SWAP 메모리를 사용 중인 프로세스 확인하기

  • top > f > SWAP(space) > Esc

t1

SWAP Column(컬럼) 표시

t2

 

728x90