리눅스 메모리

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

6 같이 보기[편집 | 원본 편집]

7 참고 문헌[편집 | 원본 편집]