본문 바로가기
🐧 Linux_이야기

🐧[Linux] Swap 메모리 설정 방법과 메모리 개념 간단 정리

by gwon_s 2025. 7. 15.

🔍 들어가며

서버 패키지 업데이트를 위해 yum update를 실행했습니다. 업데이트 도중 SSH 연결이 끊기고 서버가 멈춰버리는 현상이 발생했고, 시스템 메모리가 부족하여 yum update 시 필요한 메모리를 감당하지 못하고, 커널이 프로세스를 강제로 종료되었습니다.

 

이와 같은 상황을 방지하기 위해, Swap 메모리를 설정하는 방법을 공유해 보겠습니다.


💡 메모리와 Swap 간단 개념

  • 메모리(RAM): 빠른 속도의 임시 저장 공간. 실행 중인 프로그램들이 사용하는 공간입니다.
  • Swap: 디스크 공간을 메모리처럼 사용하는 영역입니다. 속도는 느리지만, 메모리 부족 상황에서 유용합니다.

💻 가상 메모리와 Swap 메모리

  • 가상 메모리: 
    • 정의: 물리 메모리(RAM)보다 큰 메모리 공간을 제공하기 위해, 운영체제가 물리 메모리와 디스크를 조합해 관리하는 기술입니다.
    • 동작: 실제 프로그램은 물리 메모리 주소를 직접 사용하는 것이 아니라, 가상 주소를 사용하고 운영체제가 이를 물리 주소로 변환해줍니다.
    • 장점:
      ✅ 물리 메모리가 부족해도 시스템이 멈추지 않음
      ✅ 여러 프로세스가 독립적인 메모리 공간을 가진 것처럼 동작
    • 비유: "가상의 큰 책상"을 만들어서 실제 책상이 부족해도 다른 공간(디스크)에 임시로 책을 올려두는 것과 비슷합니다.
  • Swap 메모리:
    • 정의: 가상 메모리 시스템에서, 물리 메모리가 부족할 때 사용되는 디스크 공간입니다.
    • 동작: 사용 빈도가 낮은 데이터나 프로세스의 일부를 RAM에서 하드디스크나 SSD의 스왑 영역으로 이동합니다.
    • 장점과 단점:
      ✅ 시스템이 강제 종료되는 것을 방지
      ⚠️ 디스크 I/O가 느려서 성능 저하 발생 가능

 

🏆 가상 메모리와 스왑 메모리의 차이점

구분 가상 메모리 Swap 메모리
역할 메모리 관리 기법 가상 메모리 구현의 일부
위치 주로 RAM + 일부 디스크 디스크에 따로 설정된 공간
목적 메모리 주소 관리 메모리 부족 시 임시 공간 제공
성능 RAM 위주 (빠름) 디스크 사용 (느림)

✅ 리눅스에서 Swap 메모리 설정 방법

1️⃣ 현재 Swap 확인

$ free -h
               total        used        free      shared  buff/cache   available
Mem:           951Mi       319Mi       584Mi       3.0Mi       185Mi       631Mi
Swap:          950Mi       123Mi       827Mi

또는

swapon --show
NAME       TYPE SIZE   USED PRIO
/.swapfile file 951M 123.9M   -2

→ 출력 결과에 swap이 없거나 0이라면 설정이 필요한 상태입니다

 

 

2️⃣ Swap 파일 생성

-- 2GB Swap 파일 생성
$ sudo fallocate -l 2G /swapfile

 

 

3️⃣ Swap 파일 권한 설정

  • 보안 상 root만 접근 가능해야 합니다.
sudo chmod 600 /swapfile

 

 

4️⃣ Swap 영역 생성

sudo mkswap /swapfile

 

 

5️⃣ Swap 활성화

sudo swapon /swapfile

→ 다시 확인:

-- <Before>
$ free -h
               total        used        free      shared  buff/cache   available
Mem:           503Mi       261Mi        11Mi       1.0Mi       263Mi       242Mi
Swap:          502Mi        64Mi       438Mi



-- <After>
$ free -h
               total        used        free      shared  buff/cache   available
Mem:           951Mi       333Mi       517Mi       3.0Mi       237Mi       617Mi
Swap:          2.9Gi       120Mi       2.8Gi

 

 

6️⃣ 부팅 시 자동 적용 설정

  • /etc/fstab 파일에 아래 한 줄 추가:
$ sudo vi /etc/fstab
...
/swapfile       none    swap    sw      0       0
...