Skip to content

Top

top - display Linux processes.

VSS vs RSS

이론적으로 프로세스가 차지하는 정확한 메모리의 크기를 알 수는 없다고 한다. 다만, 프로세스에 매핑되는 page 수를 해석하는 다양한 방법이 있는데, VSS, RSS, USS, PSS 등이 그것이다.

VSS (Virtual Set Size)
프로세스와 관련된 버추얼 메모리(virtual memory) 크기.
RSS (Resident Set Size)
프로세스와 관련된 물리적 페이지(physical pages) 수.
이 녀석으로 메모리 사용량 계산하자.

USS와 PSS

VSS나 RSS보다 조금 더 의미있는 수치는 USS와 PSS인데, procrank 명령어로 구할 수 있다.

  • USS(Unique Set Size) : 프로세스만의 고유한 페이지 수. 공유되지 않는 프로세스에 private한 메모리 크기이다.
  • PSS(Proportional Set Size) : USS + (공유 페이지 / 공유하는 프로세스 수). 즉, 프로세스 고유 메모리 사용량 + 하나의 프로세스가 차지하는 공유 메모리 비율이다. 만약 A프로세스가 6MB 메모리를 사용하고 그 중 2MB가 그 프로세스의 고유 영역이라면, 나머지 4MB는 공유 메모리이다. 4MB의 공유메모리를 4개의 프로세스가 공유하고 있다면 PSS는 2MB + (4MB/4) = 3MB가 된다.

PSS는 공유되는 페이지를 공유 프로세스의 수로 나누어서 좀더 정확한 메모리 사용량을 파악할 수 있게 해준다. 이게 프로세스가 사용하는 실제 메모리 크기에 가장 근접한 값이라고 볼 수 있다.

Fields Management

f 를 누르면 출력되는 필드를 선택할 수 있다.

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
  • USER - Effective User Name
  • 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
  • CGROUPS - Control Groups
  • SUPGIDS - Supp Groups IDs
  • SUPGRPS - Supp Groups Names
  • TGID - Thread Group Id
  • OOMa - OOMEM Adjustment
  • OOMs - OOMEM Score current
  • 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
  • nsUSER - USER namespace Inode
  • nsUTS - UTS namespace Inode
  • LXC - LXC container name
  • RSan - RES Anonymous (KiB)
  • RSfd - RES File-based (KiB)
  • RSlk - RES Locked (KiB)
  • RSsh - RES Shared (KiB)
  • CGNAME - Control Group name
  • NU - Last Used NUMA node

See also

Favorite site