본문 바로가기

리눅스

smem 명령어

728x90

smem 명령어

smem은 시스템 메모리 사용에 대한 자세한 정보를 제공하는 도구입니다.

smem 설치

smem 명령어는 Linux에 기본적으로 설치되어 있지 않을 수 있으므로 필요한 경우 설치해야 합니다.

  • Ubuntu 기반 시스템
sudo apt-get update
sudo apt-get install smem
  • CentOS 기반 시스템
sudo yum install smem

smem 명령어의 기본 구문

smem [options]
  • 옵션
    • -s: 프로세스별 메모리 사용량 확인
    • -w: 시스템 전체의 메모리 사용량 확인
    • -t: 메모리 사용량의 추세 분석
  • known fields : command process command line
    • maps: total number of mappings
    • name" name of process
    • pid: process ID
    • pss: proportional set size (including sharing)
    • rss: resident set size (ignoring sharing)
    • swap: amount of swap space consumed (ignoring sharing)
    • user: owner of process uss unique set size
    • vss: virtual set size (total virtual memory mapped)
$ smem -help
Usage: smem [options]

Options:
  -h, --help            show this help message and exit
  -H, --no-header       disable header line
  -c COLUMNS, --columns=COLUMNS
                        columns to show
  -t, --totals          show totals
  -a, --autosize        size columns to fit terminal size
  -R REALMEM, --realmem=REALMEM
                        amount of physical RAM
  -K KERNEL, --kernel=KERNEL
                        path to kernel image
  -m, --mappings        show mappings
  -u, --users           show users
  -w, --system          show whole system
  -P PROCESSFILTER, --processfilter=PROCESSFILTER
                        process filter regex
  -M MAPFILTER, --mapfilter=MAPFILTER
                        map filter regex
  -U USERFILTER, --userfilter=USERFILTER
                        user filter regex
  -n, --numeric         numeric output
  -s SORT, --sort=SORT  field to sort on
  -r, --reverse         reverse sort
  -p, --percent         show percentage
  -k, --abbreviate      show unit suffixes
  --pie=PIE             show pie graph
  --bar=BAR             show bar graph
  -S SOURCE, --source=SOURCE
                        /proc data source

명령어를 실행한 결과에서 나타나는 필드에 대한 설명

$ smem
  PID User     Command                         Swap      USS      PSS      RSS 
  725 root     /usr/sbin/gssproxy -D            512        4       23      700
  1. PID (Process ID):
    • 프로세스의 고유 식별자입니다.
  2. User:
    • 프로세스를 실행한 사용자의 이름 또는 사용자 ID입니다.
  3. Command:
    • 실행된 명령어 또는 프로세스의 경로입니다.
  4. Swap:
    • Swap 메모리의 크기입니다. Swap 메모리는 실제 메모리가 부족할 때 사용되는 가상 메모리 영역입니다.
  5. USS (Unique Set Size):
    • 프로세스의 고유 메모리 크기로, 공유되지 않는 메모리의 양을 나타냅니다.
  6. PSS (Proportional Set Size):
    • 프로세스가 공유하는 메모리와 고유한 메모리의 비율에 따라 계산된 크기입니다.
  7. RSS (Resident Set Size):
    • 프로세스가 현재 메모리에 실제로 올려져 있는 크기로, 주 메모리와 Swap을 포함한 총 메모리 양입니다.
728x90

사용 예시

  • 전체 메모리 사용량 요약 정보 확인
smem -w
$ smem -w
Area                           Used      Cache   Noncache 
firmware/hardware                 0          0          0 
kernel image                      0          0          0 
kernel dynamic memory       4084812    3778796     306016 
userspace memory            3838800     233148    3605652 
free memory                 4320876    4320876          0
  • 전체 메모리 사용 정보 확인
smem
$ smem
  PID User     Command                         Swap      USS      PSS      RSS 
  880 root     /sbin/agetty -o -p -- \u --      128        4        4        8 
186799 zabbix   /usr/sbin/zabbix_agentd -c      1248       12       59     1932 
186780 root     /usr/bin/VGAuthService          2068       12       65     2316 
186770 _chrony  /usr/sbin/chronyd -F 1           440       92      205     1696 
186804 zabbix   /usr/sbin/zabbix_agentd: ac     1112      168      288     2580 
186745 root     /usr/sbin/irqbalance --fore      252      216      337     3296 
460380 root     /usr/sbin/cron -f -P               0      280      368     2920 
186803 zabbix   /usr/sbin/zabbix_agentd: li     1048      288      444     2828 
186802 zabbix   /usr/sbin/zabbix_agentd: li     1044      296      453     2840 
186800 zabbix   /usr/sbin/zabbix_agentd: co     1196      352      455     1916 
186801 zabbix   /usr/sbin/zabbix_agentd: li     1044      300      458     2848 
186767 _chrony  /usr/sbin/chronyd -F 1           408      372      522     2960
  • Swap 메모리 사용 정보만 표시
smem -rs swap
$ smem -rs swap
  PID User     Command                         Swap      USS      PSS      RSS 
  900 root     /usr/bin/python3 /usr/share     6788     1484     1537     2536 
  852 root     /usr/bin/python3 /usr/bin/n     6644     2308     2789     6124 
186768 root     /usr/libexec/packagekitd        2256     1168     1675     6780 
186780 root     /usr/bin/VGAuthService          2068       12       65     2316 
  867 root     /lib/systemd/systemd-logind     1324     1424     2307     5140 
186795 root     /usr/sbin/ModemManager          1252     1176     1657     6520 
186799 zabbix   /usr/sbin/zabbix_agentd -c      1248       12       59     1932 
186800 zabbix   /usr/sbin/zabbix_agentd: co     1196      352      455     1916
  • RSS(Remote Set Size) 기준으로 정렬된 메모리 사용 정보 확인
smem -rs rss
$ smem -rs rss | grep root
186790 root     /sbin/multipathd -d -s             0    23084    23512    27892 
436511 root     /usr/bin/python3 /usr/bin/s        0    17224    17785    27636 
465903 root     /usr/bin/python3 /usr/bin/s        0    14436    14760    21000 
460387 root     /lib/systemd/systemd-journa        0    10856    11908    17712 
    1 root     /lib/systemd/systemd --syst        0     3204     4706    11256 
457230 root     sshd: mtsysman [priv]              0      752     2354     9800 
460390 root     sshd: /usr/sbin/sshd -D [li        0     1632     2233     8508 
186775 root     /usr/libexec/udisks2/udisks     1192     1536     2135     7060 
186768 root     /usr/libexec/packagekitd        2256     1168     1674     6780
  • 각 사용자의 메모리 사용량 확인
smem -u
$ smem -u
User     Count     Swap      USS      PSS      RSS 
_chrony      2      848      464      725     4656 
syslog       1      452     1168     1346     4584 
messagebus     1      308     1112     1826     3664 
zabbix       6     6692     1416     2152    14944 
systemd-network     1        0     1488     2192     7712 
root        25    24628    88116   101198   204652
  • 컬러 옵션 사용
    • --color=auto 옵션은 터미널이 색상을 지원할 경우에만 컬러를 사용하도록 설정합니다.
smem --color=auto
  • 일정 간격으로 갱신하면서 메모리 사용량 모니터링
    • -rt 옵션은 일정한 간격으로 결과를 갱신하여 실시간으로 시스템 상태를 모니터링합니다.
smem -rt

 

smem 명령어는 다양한 옵션을 제공하여 메모리 사용에 대한 상세한 정보를 제공합니다. 사용자는 필요에 따라 적절한 옵션을 선택하여 원하는 정보를 얻을 수 있습니다.

 

참고URL

- Ubuntu Manpage : smem 명령어

 

728x90