리눅스 메모리 명령어

728x90
반응형

리눅스 운영 체제에서 메모리 사용량을 확인하고 관리하는 것은 시스템 성능 유지와 최적화에 중요한 요소입니다. 이번 글에서는 리눅스에서 메모리 상태를 모니터링하고 효율적으로 관리하는 데 유용한 다양한 명령어와 옵션들을 소개합니다.

free 명령어

free 명령어는 현재 사용 중인 메모리와 사용 가능한 메모리의 크기를 간단히 보여줍니다. 이를 통해 전체 메모리, 사용 중인 메모리, 여유 메모리 등을 한눈에 확인할 수 있습니다.

기본 사용법

free

출력 예시

                        total        used              free      shared    buff/cache   available
Mem:        2002420     1000140       43492       17726      321312      454292
Swap:       5001344      168220     4830860

옵션

  • -b, -k, -m, -g: 바이트, 킬로바이트, 메가바이트, 기가바이트 단위로 표시합니다. 
  • free -m
     
  • -h: 사람이 읽기 쉬운 형식으로 표시합니다.
     
    free -h
     
  • -s [sec]: 지정한 초 단위로 메모리 정보를 주기적으로 갱신합니다.
     
    free -s 5
     
  • -t: 총 메모리와 스왑 사용량을 함께 표시합니다.
     
    free -t

/proc/meminfo 파일

/proc/meminfo 파일은 시스템의 메모리 사용 현황을 상세하게 보여줍니다. 이 파일을 읽어들여 메모리의 상세 정보를 확인할 수 있습니다.

기본 사용법

cat /proc/meminfo

출력 예시

MemTotal:       16121232 kB
MemFree:          354672 kB
Buffers:          378504 kB
Cached:          1619800 kB
SwapCached:            0 kB
...

vmstat 명령어

vmstat 명령어는 메모리, 프로세스, 시스템, I/O, 트랩, CPU 활동 등을 실시간으로 보여줍니다.

기본 사용법

vmstat

출력 예시

 
procs -----------memory----------         ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd      free   buff     cache       si   so    bi       bo   in   cs us sy id   wa st
 0  0      0   362136  43160 1325368    0    0     4        1    3    5   0   0  100  0  0

옵션

  • -s: 메모리 통계 요약을 표시합니다.
    vmstat -s
     
  • -d: 디스크 통계를 표시합니다.
    vmstat -d
     
  • -p [partition]: 특정 파티션의 통계를 표시합니다.
    vmstat -p sda1

top 명령어

top 명령어는 시스템의 실시간 프로세스 상태를 보여주며, CPU와 메모리 사용량을 모니터링하는 데 유용합니다.

기본 사용법

top

출력 예시

top - 10:19:10 up  2:37,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  92 total,   1 running,  91 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2002420 total,  1694296 free,   285280 used,   445508 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1855876 avail Mem

옵션

  • -d [seconds]: 주기적으로 업데이트되는 간격을 설정합니다.
    top -d 5
     
  • -u [username]: 특정 사용자의 프로세스만 표시합니다.
    top -u root
     
  • -p [pid]: 특정 프로세스 ID를 모니터링합니다.
    top -p 1234

ps_mem 명령어

ps_mem 명령어는 Python 스크립트로, 프로그램별 메모리 사용량을 보고하는 도구입니다. 이를 사용하면 각 프로세스가 차지하는 메모리 양을 쉽게 확인할 수 있습니다.

설치 및 사용 방법

sudo pip3 install ps_mem sudo ps_mem

출력 예시

 Private  +   Shared  =  RAM used Program
  11.9 MiB +  20.2 MiB =  32.1 MiB nginx (4)
   8.2 MiB +  42.4 MiB =  50.6 MiB systemd-journald
  55.8 MiB + 307.2 MiB = 363.0 MiB php-fpm7.4 (6)
 233.9 MiB + 234.0 MiB = 467.9 MiB redis-server
 578.2 MiB + 578.6 MiB =   1.1 GiB mysqld

dmidecode 명령어

dmidecode 명령어는 시스템의 DMI(Desktop Management Interface) 정보를 덤프하여, 메모리 슬롯 정보와 메모리 모듈의 자세한 정보를 확인할 수 있습니다.

기본 사용법

sudo dmidecode -t memory

출력 예시

# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
Handle 0x0008, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 32 GB
Error Information Handle: Not Provided
Number Of Devices: 2
...

옵션

  • -t [type]: 특정 DMI 타입만 출력합니다.
    sudo dmidecode -t processor
     
  • -q: 정보를 간결하게 표시합니다.
    sudo dmidecode -q

dmesg | grep memory

dmesg 명령어는 시스템 부팅 메시지를 확인하는 데 사용되며, 메모리 관련 정보를 확인할 때 유용합니다.

기본 사용법

dmesg | grep memory

출력 예시

[    0.000000] Memory: 16301232K/16777216K available (12291K kernel code, 2463K rwdata, 4328K rodata, 2344K init, 4160K bss, 475984K reserved, 0K cma-reserved)

결론

리눅스 시스템에서 메모리 상태를 확인하고 관리하는 것은 시스템 성능을 유지하는 데 중요한 작업입니다. free, /proc/meminfo, vmstat, top, ps_mem, dmidecode, dmesg 등 다양한 명령어를 사용하여 시스템의 메모리 상태를 모니터링하고 적절히 관리할 수 있습니다.

728x90
반응형