Jiwon Min Developer

Ubuntu 22.04 LTS 스왑 메모리 설정하기

AWS EC2 프리티어나 저사양 자체 호스팅 서버에서 대용량 패키지를 설치하다 보면 RAM 부족으로 서버가 멈추거나 다운되는 경우가 있습니다. 마이크로서비스를 낮은 사양에서 운영할 때도 같은 문제가 생길 수 있는데, 이때 스왑 메모리로 디스크 일부를 RAM처럼 쓰면 도움이 됩니다. Ubuntu 22.04 LTS에서 스왑을 설정하는 방법을 정리합니다.

Medium 에도 발행하고 있어요.

Random Access Memory

© Unsplash © Akshar Dave🌻


스왑 메모리는 물리 디스크의 일부를 휘발성 메모리인 RAM(이하 메모리) 으로 사용하여 부족한 메모리 용량을 보강해주는 역할을 합니다. 간혹 Laravel 이나 NestJS 같은 큰 패키지 덩어리를 인스톨하는 경우에 메모리나 CPU 자원과 같은 즉, 컴퓨터 리소스를 많이 필요로하기 때문에 리소스가 부족한 경우 설치에 실패하는 경우가 있습니다.

Google Compute Engine, Amazon EC2 등등 대부분의 가상 머신 서비스에서는 메모리 용량을 추가하려면 인스턴스를 중지한 후에 인스턴스 타입을 변경해야 합니다. 예상하지 못한 상황에서 메모리 부족으로 인한 시스템 오류가 발생하여 재부팅하는 일이 생긴다면, 중지되어 있는 동안 계속해서 손해가 발생하기 때문에 미리 대비해야 할 필요가 있습니다. 이런 경우에 스왑 메모리를 설정해놓으면 임시적으로라도 메모리 부족에 대해서 조금이나마 도움을 받을 수 있습니다.

대부분의 상용서비스 환경에서는 각각의 인프라 관리 기술을 도입해서 위와 같은 상황이 생기는 경우는 잘 없겠습니다만, 개발 테스트나 토이프로젝트와 같은 용도로 사용하는 프리티어 정도의 낮은 사양에서는 스왑 메모리를 설정해두는 게 굉장히 편리하고 도움이 됩니다.

Windows 11 virtual memory

윈도우의 가상 메모리

스왑 메모리라는 개념은 우분투와 같은 리눅스나 유닉스에만 있는 개념이 아닙니다. 윈도우에도 가상 메모리라는 이름으로 활용되고 있고, 저사양 PC에서 유용하게 활용되고 있습니다.

스왑 메모리 설정

  1. 스왑 메모리가 설정되어 있는 지 확인
       sudo free -m
       sudo swapon -s
    

    Check swap memory

  2. 스왑 메모리가 설정되어 있다면 사용 중지
       sudo swapoff -a
    
  3. 스왑 메모리로 사용 할 swapfile 생성
       # 4G 크기만큼 스왑 파일 생성
       sudo fallocate -l 4G /swapfile
    
  4. 생성한 swapfile 을 스왑 메모리로 사용하도록 설정
       # 권한 수정
       sudo chmod 600 /swapfile
        
       # 활성화 준비
       sudo mkswap /swapfile
        
       # 활성화
       sudo swapon /swapfile
    

    Make swapfile

  5. 서버 리부팅 후에도 스왑 메모리를 사용할 수 있도록 설정
       # 파일 편집
       sudo nano /etc/fstab 
        
       # 내용 추가
       /swapfile swap swap defaults 0 0
    

    Swap setup for rebooting

  6. 스왑 메모리 설정 완료 Complete make swapfile

스왑 메모리 비활성화

스왑 메모리를 더 이상 사용하지 않는 경우 비활성화 합니다.

# 스왑 비활성화
sudo swapoff -v /swapfile 

# 파일 실행 후 아래 라인 삭제
sudo nano /etc/fstab      
/swapfile swap swap defaults 0 0

# swap 파일 삭제
sudo rm /swapfile 

참고문헌