리눅스 메모리(Linux Memory)는 운영체제에서 프로세스 및 커널이 사용하는 메모리 관리 방식을 의미한다. 리눅스에서는 가상 메모리, 캐시, 스왑 등의 개념을 활용하여 효율적인 메모리 관리를 수행한다.
개요
리눅스는 메모리를 효율적으로 사용하기 위해 가상 메모리(Virtual Memory) 시스템을 채택하고 있으며, 프로세스마다 독립적인 메모리 공간을 할당한다. 또한 캐시(Buffer Cache)와 스왑(Swap) 기능을 통해 물리적 메모리를 보완한다.
메모리 구조
리눅스의 메모리 구조는 크게 다음과 같이 나뉜다.
- 물리적 메모리 (Physical Memory)
- RAM(Random Access Memory)으로 구성되며, 커널과 사용자 프로세스가 직접 사용하는 메모리 공간이다.
- 페이지 단위(일반적으로 4KB)로 관리된다.
- 가상 메모리 (Virtual Memory)
- 프로세스마다 독립적인 메모리 공간을 제공하는 논리적 메모리 구조이다.
- 물리적 메모리보다 큰 공간을 제공하며, 스왑 영역을 활용할 수 있다.
- 스왑 메모리 (Swap Memory)
- RAM이 부족할 때, 디스크의 일부를 메모리처럼 사용하는 공간이다.
- 물리적 메모리에 비해 속도가 느리지만, 메모리 부족 현상을 완화하는 역할을 한다.
- 캐시 및 버퍼 (Cache & Buffer)
- 자주 사용되는 데이터를 저장하여 성능을 향상시키는 역할을 한다.
- 커널은 사용 가능한 여유 메모리를 캐시와 버퍼로 적극 활용한다.
메모리 확인 명령어
리눅스에서 현재 메모리 상태를 확인하는 주요 명령어는 다음과 같다.
`free` 명령어
`free` 명령어는 사용 가능한 메모리와 스왑 상태를 확인하는 데 사용된다.
free -h
출력 예시:
total used free shared buff/cache available Mem: 15Gi 3Gi 2Gi 1Gi 10Gi 11Gi Swap: 4Gi 1Gi 3Gi
옵션 설명:
- `-h` : 사람이 읽기 쉬운 형식(Human-readable)으로 출력
`top` 명령어
`top` 명령어는 실시간으로 CPU 및 메모리 사용량을 모니터링하는 데 사용된다.
top
출력 예시:
KiB Mem : 16324232 total, 12150332 free, 2048032 used, 2147072 buff/cache KiB Swap: 8388604 total, 8388592 free, 12 used. 12550300 avail Mem
`htop` 명령어
`htop`은 `top`보다 더 보기 쉬운 인터페이스를 제공하는 명령어이다.
설치 방법:
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # RHEL/CentOS
실행:
htop
`/proc/meminfo` 파일 확인
리눅스 시스템의 자세한 메모리 정보를 확인할 수 있는 가상 파일이다.
cat /proc/meminfo
출력 예시:
MemTotal: 16324232 kB MemFree: 12150332 kB MemAvailable: 12550300 kB Buffers: 2147072 kB Cached: 3048032 kB SwapTotal: 8388604 kB SwapFree: 8388592 kB
스왑(Swap) 관리
스왑 공간은 RAM이 부족할 때 디스크를 임시 메모리로 사용하는 기능을 한다.
스왑 크기 확인
현재 시스템의 스왑 크기를 확인하려면 다음 명령어를 사용한다.
swapon --summary
출력 예시:
Filename Type Size Used Priority /dev/sda2 partition 4G 1G -2
스왑 활성화 및 비활성화
스왑을 비활성화하려면:
sudo swapoff -a
스왑을 다시 활성화하려면:
sudo swapon -a
메모리 최적화 및 관리
리눅스에서는 불필요한 캐시를 정리하여 메모리를 최적화할 수 있다.
- 캐시 정리
sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
- 스왑 해제
sudo swapoff -a && sudo swapon -a