EC2 빌드 시 메모리 부족 현상

Yushin·2024년 2월 25일
0

트러블슈팅

목록 보기
5/9

상황

EC2 서버에서 클론받은 프로젝트 테스트를 돌렸는데 오랜 시간이 지나도 아무런 진행이 되지 않았다.

오류 메세지

BUILD FAIL 메세지도 출력되지 않았고 대기 시간만 증가할뿐 아무런 메시지가 출력되지 않았다.

원인

AWS 프리티어 서비스는 램 용량을 1GB만 지원하기 때문에 서버 과부하가 걸려 무한 로딩 오류에 빠진 것이다.
문제를 해결하기 이전 CPU 사용률을 확인해보면 거의 100%가 사용되었다..

해결

리눅스에서는 SWAP 메모리를 지정할 수 있다. SWAP 메모리란 RAM이 부족한 경우 하드디스크의 일정공간을 마치 RAM 처럼 사용하는 것이다. 이를 통해 RAM 을 증설한 효과를 얻을 수 있다.

물리적 RAM 용량권장 SWAP 용량
RAM 2GB 이하RAM 용량의 2배(최소 32MB)
RAM 2GB 초과, 32GB 미만4GB + (RAM – 2GB)
RAM 32GB 이상RAM 용량의 1배

프리티어에서 제공하는 램 용량은 1GB 이므로 SWAP 공간은 2GB로 지정해주면 된다.

# swap 메모리 할당
sudo dd if=/dev/zero of=/swapfile bs=128M count=16

# swap 파일에 대한 읽기 및 쓰기 권한 업데이트
sudo chmod 600 /swapfile

# Linux swap 영역 설정
sudo mkswap /swapfile

# swap 공간에 swap 파일을 추가하여 즉시 사용 가능하도록 설정
sudo swapon /swapfile

# 절차 성공 확인
sudo swapon -s

# /etc/fstab 파일을 편집하여 부팅 시 swap 파일 활성화
# 파일 열기
sudo vi /etc/fstab

# 파일 끝에 아래의 코드 추가 후 저장 및 종료
/swapfile swap swap defaults 0 0

# 적용되었는지 확인
free

swap 적용 전

swap 적용 후 (swap 공간이 할당된 것을 볼 수 있다.)


결과

30분을 기다려도 안되던 빌드가 1분 30초만에 성공하였다..
메모리를 보니 swap 공간이 사용된 것을 확인할 수 있다.


참고 레퍼런스
https://sundries-in-myidea.tistory.com/102

0개의 댓글