본문 바로가기

리눅스

리눅스 smem 명령어 사용법 정리

반응형

리눅스 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: 메모리 사용량의 추세 분석
$ 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을 포함한 총 메모리 양입니다.

사용 예시

전체 메모리 사용량 요약 정보 확인

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
반응형