리눅스 운영 체제에서 메모리 사용량을 확인하고 관리하는 것은 시스템 성능 유지와 최적화에 중요한 요소입니다. 이번 글에서는 리눅스에서 메모리 상태를 모니터링하고 효율적으로 관리하는 데 유용한 다양한 명령어와 옵션들을 소개합니다.
free 명령어
free 명령어는 현재 사용 중인 메모리와 사용 가능한 메모리의 크기를 간단히 보여줍니다. 이를 통해 전체 메모리, 사용 중인 메모리, 여유 메모리 등을 한눈에 확인할 수 있습니다.
기본 사용법
출력 예시
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 파일은 시스템의 메모리 사용 현황을 상세하게 보여줍니다. 이 파일을 읽어들여 메모리의 상세 정보를 확인할 수 있습니다.
기본 사용법
출력 예시
MemFree: 354672 kB
Buffers: 378504 kB
Cached: 1619800 kB
SwapCached: 0 kB
...
vmstat 명령어
vmstat 명령어는 메모리, 프로세스, 시스템, I/O, 트랩, 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와 메모리 사용량을 모니터링하는 데 유용합니다.
기본 사용법
출력 예시
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 스크립트로, 프로그램별 메모리 사용량을 보고하는 도구입니다. 이를 사용하면 각 프로세스가 차지하는 메모리 양을 쉽게 확인할 수 있습니다.
설치 및 사용 방법
출력 예시
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) 정보를 덤프하여, 메모리 슬롯 정보와 메모리 모듈의 자세한 정보를 확인할 수 있습니다.
기본 사용법
출력 예시
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 명령어는 시스템 부팅 메시지를 확인하는 데 사용되며, 메모리 관련 정보를 확인할 때 유용합니다.
기본 사용법
출력 예시
결론
리눅스 시스템에서 메모리 상태를 확인하고 관리하는 것은 시스템 성능을 유지하는 데 중요한 작업입니다. free, /proc/meminfo, vmstat, top, ps_mem, dmidecode, dmesg 등 다양한 명령어를 사용하여 시스템의 메모리 상태를 모니터링하고 적절히 관리할 수 있습니다.