💿
리눅스 Swap memory 할당/해제

· January 20, 2025 · 4 min read


☀️ 테스트 환경

  • CentOS 8
  • WSL (Windows 10 Pro)

✋ 들어가며

로컬에서 개발된 소스를 리눅스 환경에 배포할때 메모리에 관련된 에러 메시지를 자주 만날 수 있다. JVM이나 node 환경에서는 Heap memory를 늘려주는 방법으로도 메모리 관련 에러로부터 자유로울 수 있지만, 물리 메모리가 절대적으로 부족한 상황이라면 디스크의 일부분을 메모리처럼 활용할 수 있는 Swap memory 설정이 해결책이 될 수 있다.

Swap Memory란?

메모리가 가든찬 경우에도 디스크의 일부분을 활용하여 메모리를 대체할 수 있도록 할당한 공간이다.

Swap Memory의 권장 크기

Red Hat Enterprise Linux 권장 Swap 크기↗를 참고하면 Swap 공간을 얼마나 할당해서 사용해야 할지에 대한 답을 찾을 수 있지만 디스크의 일부분을 사용하기 때문에 여유 디스크의 사이즈도 고려해서 할당해야 한다.

✅ Swap Memory 할당

메모리 확인

할당 전 메모리를 확인해보면 Swap 영역이 '0B'로 잡혀있는 것을 확인 할 수 있다.

free -h
✔
              total        used        free      shared  buff/cache   available
Mem:            15G          0B          0B          0B          0B          0B
Swap:            0B          0B          0B

Swap File 생성 및 권한 설정

할당할 용량의 파일을 루트 경로에 생성하고 권한을 설정한다.

fallocate -l 8G /swapfile
chmod 600 /swapfile
cd /
ls -alh
✔
dr-xr-xr-x  22 root    root     314 Dec  5 04:53 .
dr-xr-xr-x  22 root    root     314 Dec  5 04:53 ..
-rw-------   1 root    root    8.0G Dec  5 05:45 swapfile

Swap 파티션 생성 및 활성화

  1. 스왑 파티션 생성
  2. 재기동 후에도 파티션이 유지되도록 설정하기 위해서 출력되는 UUID는 복사해둔다.

    mkswap /swapfile
    ✔
    Setting up swapspace version 1, size = 8 GiB (8589934592 bytes)
    no label, UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
  3. 스왑 영역 활성화 및 확인

    swapon /swapfile
    free -h
    ✔
                  total        used        free      shared  buff/cache   available
    Mem:            15G          0B          0B          0B          0B          0B
    Swap:            8G          0B          0B
  4. fstab에 파티션 추가

    • 복사해두었던 UUID를 Tab 문자열이나 공백으로 구분해서 '/etc/fstab' 하단에 작성하면 재기동 후에도 유지된다.

      vi /etc/fstab
      ...
      UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /swapfile swap defaults 0 0

❎ Swap Memory 해제

Swap 영역 비활성화

스왑을 비활성화 해주고 생성했던 '/swapfile'을 삭제하면 다시 '0B'로 변한걸 확인할 수 있다.

swapoff /swapfile
rm -rf /swapfile
free -h
✔
              total        used        free      shared  buff/cache   available
Mem:            15G          0B          0B          0B          0B          0B
Swap:            0B          0B          0B

fstab 파티션 삭제

추가했던 UUID를 제거하면 Swap Memory 해제가 완료된다.

vi /etc/fstab

👋 마치며

Windows 10 Pro 환경에서 WSL을 활성화하고 CentOS 8을 설치해봤는데 생각보다 안정적이지 못한 느낌이 든다. 연습장으로 사용할 다른 대안을 찾아봐야겠다.

@rundevelrun
똑바로 해, 넌 정말