프로젝트를 AWS 에 올리게 되면서 Jenkins 메모리 부족관련 이슈를 겪었습니다.
AWS 프리티어를 이용하다보니, 메모리 부족 관련 이슈가 계속해서 발생했습니다.
요금제 때문에 더 높은 인스턴스를 이용할 수 없었고, 결과적으로 메모리를 늘려주기 위해 SWAP 메모리를 사용해야만 했습니다.
SWAP 메모리?
간단하게 SWAP 메모리는 우리의 물리 하드디스크를 메모리 처럼 이용해줄 수 있게 만들어주는 것입니다.
쉽게 설명하면 하드디스크를 어느정도 메모리 처럼 사용할 수 있다는 것이죠
아마존 공식문서는 아래와 같습니다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-swap-file/
1. swapfile 을 잡아봅시다.
sudo dd if=/dev/zero of=/swapfile bs=128M count=32
2. 이제 swap 영역에 읽기와 쓰기 설정을 해줍시다.
sudo chmod 600 /swapfile
3. Linux 의 Swap 영역을 설정해줍시다.
sudo mkswap /swapfile
4. 스왑 공간에 스왑 파일을 추가하여 스왑 파일을 즉시 사용할 수 있도록 합니다.
sudo swapon /swapfile
5. 본과정이 제대로 진행되었는지 한번 확인해줍시다.
sudo swapon -s
6. 편집기를 열어 아래파일을 엽니다.
sudo vi /etc/fstab
7. 아래의 명령어를 끝줄에 추가합니다.
/swapfile swap swap defaults 0 0
8. 이제 free 를 입력하여 확인해봅시다.
Swap 메모리를 설정완료했습니다!
이제는 jenkins 의 JVM Memory 를 늘려줘야 할 일이 생겼는데요.
Jenkins Config 파일을 찾는 법은 아래와 같습니다.
vi /etc/default/jenkins
이제 찾았다면 메뉴에서 JVM 메모리 용량을 자신이 원하는 대로 적어줍시다.
이제 적용했으니 Jenkins 를 한번 껐다가 켜보도록 하죠
sudo systemctl restart jenkins
이제 아래와 같이 정상적으로 젠킨스를 통한 배포가 성공했네요. EC2 메모리가 부족하다면 SWAP 메모리를 적극 이용해보시길 바랍니다.
'Java' 카테고리의 다른 글
JPA PersistContext (0) | 2021.11.22 |
---|---|
Java Stream (0) | 2021.11.11 |
객체는 무엇일까? (0) | 2021.10.14 |
Switch 문 반복을 없애기 (0) | 2021.10.07 |
JVM 구조 (0) | 2021.10.07 |