리눅스 메모리
IT 위키
리눅스 메모리(Linux Memory)는 운영체제에서 프로세스 및 커널이 사용하는 메모리 관리 방식을 의미한다. 리눅스에서는 가상 메모리, 캐시, 스왑 등의 개념을 활용하여 효율적인 메모리 관리를 수행한다.
1 개요[편집 | 원본 편집]
리눅스는 메모리를 효율적으로 사용하기 위해 가상 메모리(Virtual Memory) 시스템을 채택하고 있으며, 프로세스마다 독립적인 메모리 공간을 할당한다. 또한 캐시(Buffer Cache)와 스왑(Swap) 기능을 통해 물리적 메모리를 보완한다.
2 메모리 구조[편집 | 원본 편집]
리눅스의 메모리 구조는 크게 다음과 같이 나뉜다.
- 물리적 메모리 (Physical Memory)
- RAM(Random Access Memory)으로 구성되며, 커널과 사용자 프로세스가 직접 사용하는 메모리 공간이다.
- 페이지 단위(일반적으로 4KB)로 관리된다.
- 가상 메모리 (Virtual Memory)
- 프로세스마다 독립적인 메모리 공간을 제공하는 논리적 메모리 구조이다.
- 물리적 메모리보다 큰 공간을 제공하며, 스왑 영역을 활용할 수 있다.
- 스왑 메모리 (Swap Memory)
- RAM이 부족할 때, 디스크의 일부를 메모리처럼 사용하는 공간이다.
- 물리적 메모리에 비해 속도가 느리지만, 메모리 부족 현상을 완화하는 역할을 한다.
- 캐시 및 버퍼 (Cache & Buffer)
- 자주 사용되는 데이터를 저장하여 성능을 향상시키는 역할을 한다.
- 커널은 사용 가능한 여유 메모리를 캐시와 버퍼로 적극 활용한다.
3 메모리 확인 명령어[편집 | 원본 편집]
리눅스에서 현재 메모리 상태를 확인하는 주요 명령어는 다음과 같다.
3.1 `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)으로 출력
3.2 `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
3.3 `htop` 명령어[편집 | 원본 편집]
`htop`은 `top`보다 더 보기 쉬운 인터페이스를 제공하는 명령어이다.
설치 방법:
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # RHEL/CentOS
실행:
htop
3.4 `/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
4 스왑(Swap) 관리[편집 | 원본 편집]
스왑 공간은 RAM이 부족할 때 디스크를 임시 메모리로 사용하는 기능을 한다.
4.1 스왑 크기 확인[편집 | 원본 편집]
현재 시스템의 스왑 크기를 확인하려면 다음 명령어를 사용한다.
swapon --summary
출력 예시:
Filename Type Size Used Priority /dev/sda2 partition 4G 1G -2
4.2 스왑 활성화 및 비활성화[편집 | 원본 편집]
스왑을 비활성화하려면:
sudo swapoff -a
스왑을 다시 활성화하려면:
sudo swapon -a
5 메모리 최적화 및 관리[편집 | 원본 편집]
리눅스에서는 불필요한 캐시를 정리하여 메모리를 최적화할 수 있다.
- 캐시 정리
sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
- 스왑 해제
sudo swapoff -a && sudo swapon -a