개인 프로젝트를 하면서 AWS 1년 무료 서버를 사용중인데 ec2 인스턴스 서버당 메모리 1GB, 총 디스크 사용량 30GB 밖에 안된다.
용량이 적어서 클라이언트 코드를 인스턴스 서버에 빌드할 때마다 cpu 사용률이 100%에 달하게 되고, 빌드가 중단되는 사태가 자주 발생하였다.
그래서 이를 해결하려고 여러가지 방법을 모색하던 중 가장 간단하게 할 수 있는 방법이 인스턴스 서버 내 swap 메모리를 늘리기였다.
스왑 메모리는 시스템의 물리적 메모리(RAM)가 부족할 때, 디스크 공간을 임시로 사용하는 메커니즘이다.
운영체제는 스왑 메모리를 사용하여 RAM의 일부 데이터를 디스크로 이동시켜 메모리 부담을 줄이고, 추가 작업을 처리할 수 있도록 한다.
참고로 스왑 메모리는 물리적 메모리(RAM)가 부족한 상황에서 유용하지만, 디스크 성능이 낮은 경우 과도한 스왑 사용은 시스템 속도를 저하시킬 수 있으므로 적절히 관리해서 사용해야 한다.
1. 스왑 파일 생성
디스크에 스왑 파일을 만든다. 예를 들어, 2GB 크기의 스왑 파일을 생성한다고 가정하자.
sudo fallocate -l 2G /swapfile
2. 스왑 파일 권한 설정
스왑 파일은 보안상의 이유로 루트만 접근할 수 있어야 한다.
sudo chmod 600 /swapfile
3. 스왑 영역 초기화
스왑 파일을 스왑 영역으로 초기화한다.
sudo mkswap /swapfile
4. 스왑 활성화
생성한 스왑 파일을 활성화한다.
sudo swapon /swapfile
5. 활성화된 스왑 상태 확인
free -h
//또는
swapon --show
6. 재부팅 시 스왑 유지
시스템 재부팅 후에도 스왑 파일을 유지하려면 /etc/fstab에 추가해야한다.
sudo nano /etc/fstab
/swapfile none swap sw 0 0
추가로 스왑 메모리를 비활성화 하려면
sudo swapoff /swapfile
sudo rm /swapfile