전에 앵그리박스 프로젝트 진행 초반에 프리티어 ec2가 너무 터져서 스왑 메모리를 설정해준 적이 있었다.
Medium은 프리티어와 달리 램이 그래도 4gb는 되니까 쉽게 터지지 않을거라고 생각했는데...
아무래도 이번에 뮤지캣 리팩토링을 진행하기로 하면서 톰캣 컨테이너를 두 개나 올린 것이 문제였는지 젠킨스로 프로젝트를 빌드하다가 종종 터지는 일이 발생했다.

도커에 4개의 컨테이너가 올라갔을 때 메모리 상태이다.
사용 가능한 메모리가 1기가 밖에 남지 않았다...
프리티어의 ec2 메모리가 1기가였고 os만 돌아가는 상태가 대충 500메가, 거기에 redis를 올리니 시도때도없이 터져댔던 것을 생각하면 확실히 이번 ec2도 죽는 소리를 낼만한 상황.
젠킨스 컨테이너만 남기고 배포할 다른 방향을 찾는 것이 제일 최선의 방법이겠지만
우리는 당장 이번주는 다른 일정이 있어 손이 많이 가는 작업은 할 수 없고...
우선 swap 메모리로 응급 처치를 하기로 했다.
스왑 메모리 설정하는 법 : https://fidget278.tistory.com/44
AWS, 리눅스) 스왑(Swap) 메모리 설정하기
aws 프리티어를 사용하여 토이 프로젝트 작업 도중.. jwt 토큰 저장소로 쓰기 위해 redis를 도입하고 얼마 지나지 않아 ec2가 굉장한 빈도로 뻗는 현상이 발생했었다. 원인은 아마도 프리티어(마이크
fidget278.tistory.com

짠.
설정해준 후의 모습이다.
swap 공간 6기가가 잘 잡혀있다.
바로 젠킨스로 빌드를 돌려서 메모리를 얼마나 쓰는지 확인해봤다.

으아... 사용 가능 메모리는 495 메가로 줄어들었고 바로 Swap 메모리를 사용하고 있다.

빌드가 끝나자 다시 사용 가능 메모리가 어느정도 올라가는 것을 확인했다.
젠킨스로 빌드할 때 외에는 아직 터진 적이 없고.. 빌드는 보통 30초 내외에 끝나니까 아마 당분간은 이것으로 버텨줄 것 같다.
하지만 swap 메모리는 어디까지나 임시방편이니까.. 개선 방안을 찾아보고 괜찮은 방법을 찾아낸다면 배포 구조를 다시 바꿔야할 것 같다.
'개인프로젝트' 카테고리의 다른 글
| 앵그리박스) API 서버 응답 속도 향상 시키기 1 (2) | 2022.09.14 |
|---|---|
| Spring RestDocs 적용기.. (1) | 2022.06.25 |
| 앵그리뱅크) 서버 구축 과정 (0) | 2022.06.21 |
| 앵그리뱅크) war 파일로 배포했던 이유 (3) | 2022.06.20 |