BackEnd/Infra
AWS EC2 Swap 메모리로 메모리 부족 문제 해결하기
PgmJUN
2024. 1. 31. 21:54
Swap 메모리란?
RAM 용량이 부족할 경우 HDD의 일부를 RAM 처럼 사용하는 것이다.
이걸 사용해서 RAM 용량이 부족하여 시스템에 문제가 생기는 일을 방지할 수 있다.
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 메모리를 활성화 시켜주자.
그럼 이렇게 메모리가 활성화 된다.
# 파일 열기
sudo vi /etc/fstab
# 파일 가장 마지막에 다음을 추가하고 :wq로 저장하고 종료
/swapfile swap swap defaults 0 0
fstab을 설정하여 부팅 시에 swap 파일을 활성화 되도록 설정해주면 EC2 세팅은 끝이다.
`free` 명령어를 통해 2GB 메모리가 추가 할당된 것을 확인할 수 있다.
유의 사항
Swap메모리를 통해 메모리를 사용한다고해서 무적은 아니다.
Swap메모리는 위에서 설명했듯이 HDD의 일부를 메모리로 사용하는 것이기 때문에 일반적인 메모리와 속도에 있어서 큰 차이가 있다.
어떤 기술이던간에 항상 트레이드 오프가 있음을 인지하고 개발에 임하자!