BackEnd/Infra

AWS EC2 Swap 메모리로 메모리 부족 문제 해결하기

PgmJUN 2024. 1. 31. 21:54

 

 

Swap 메모리란?

RAM 용량이 부족할 경우  HDD의 일부를 RAM 처럼 사용하는 것이다.

이걸 사용해서 RAM 용량이 부족하여 시스템에 문제가 생기는 일을 방지할 수 있다.

 

aws 권장 스왑 공간

RAM이 2GB 이하인 경우  AWS에서 권하는 스왑 공간은 2배이다.

 

즉, 1GB인 RAM을 사용하는 현제 ec2 t2.micro환경은

스왑 메모리 방식을 통해 2GB를 추가하여

총 3GB의 메모리로 사용이 가능하다.

 

 

sudo dd if=/dev/zero of=/swapfile bs=128M count=16

 

dd 명령어를 통해 swap 메모리를 생성할 수 있다.

 

of : swapfile 경로

bs : Block 사이즈

count : Block 갯수

 

지정한 블록 사이즈는 인스턴스에서 사용 가능한 메모리보다 작아야한다. 그렇지 않으면 memory exhauted 오류가 발생한다.

 

현재 설정대로면 128MB * 16 = 2048MB 로 스왑 메모리는 총 2GB가 된다.

 

# swapfile 읽기 쓰기 권한 업데이트
sudo chmod 600 /swapfile

# 리눅스 swap 영역 설정
sudo mkswap /swapfile

# 스왑 메모리를 활성화
sudo swapon /swapfile

# 절차가 성공했는지 확인
sudo swapon -s

swap 메모리를 생성했다면 위의 명령어들을 통해 swap 메모리를 활성화 시켜주자.

 

활성화 된 swap 메모리

그럼 이렇게 메모리가 활성화 된다.

 

# 파일 열기
sudo vi /etc/fstab

# 파일 가장 마지막에 다음을 추가하고 :wq로 저장하고 종료
/swapfile swap swap defaults 0 0

fstab을 설정하여 부팅 시에 swap 파일을 활성화 되도록 설정해주면 EC2 세팅은 끝이다.

 

`free` 명령어를 통해 2GB 메모리가 추가 할당된 것을 확인할 수 있다.

 

 


 

유의 사항

 

Swap메모리를 통해 메모리를 사용한다고해서 무적은 아니다.

Swap메모리는 위에서 설명했듯이 HDD의 일부를 메모리로 사용하는 것이기 때문에 일반적인 메모리와 속도에 있어서 큰 차이가 있다.

 

어떤 기술이던간에 항상  트레이드 오프가 있음을 인지하고 개발에 임하자!