Ec2 프리티어 Swap 메모리 적용
EC2 프리티어 t2 인스턴스에서 airflow를 활용한 개인프로젝트를 진행하는데 메모리 문제로 죽는 현상이 있었다. 이를 swap memory로 해결한 경험이다.
발단
- vCPU = 1
- RAM(GiB) = 1
너무 작아서 그런지 실행시 인스턴스가 계속 먹통이 됐다. 인스턴스 중단 - 실행 을 반복해야하는 열받는 상황이었다. airflow config의 설정에서 auto-reload, num_process, thread 등 여러 옵션들을 조절하였으나 그래도 나아지지 않았다. (물론 해당 옵션들은 스왑 메모리를 써도 필요하다)
요구사항
가동 프로세스
- Airflow scheduler
- Airflow web server
- FastAPI backend server
총 3개의 파일을 실행하며 프로세스는 Dagfile 추적 프로세스까지 총 4개이다. t2.micro 인스턴스는 스스로의 힘으로 위 프로세스들을 구동할 수 없었다.
free memory가 94로 거의 다 떨어졌고 지정한 2기가 swap 메모리를 추가로 사용한 것을 볼 수 있다.
Swap Memory 설정 방법
RAM말고 SSD/HDD 용량을 이용해 부족한 메모리를 대체하는 swap을 설정해 SSD/HDD 공간을 RAM처럼 써보자
swap 메모리 할당
- swap 파일을 생성한다.
- swapfile을 읽고 쓸 수 있게 권한 수정한다
sudo chmod 600 /swapfile
- swapfile 적용하기
- swap 영역을 설정한다
sudo mkswap /swapfile
- swap 영역에 swapfile을 추가해 사용가능하게 만든다
sudo swapon /swapfile
- swap 영역을 설정한다
- 부팅 시 swapfile 활성화
sudo vi /etc/fstab
을 통해 파일 open- 마지막에 다음 내용 추가
/swapfile swap swap defaults 0 0
- free로 확인
- swap memory를 적용한 이후 나의 airflow 프로세스들은 정상적으로 가동됐다!
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.