-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Milestone
Description
📝 프론트엔드 힙메모리 제한에 맞는 POD limit 메모리 설정 및 가동 테스트
🎯 목표
현재 8Gi를 주고있는 프론트엔드 POD의 메모리를 절감합니다.
📖 배경
OOM 발생 이유는 다음과 같은 2가지의 요소가 존재합니다.
-
next.js 자체 수준에서 메모리 제한을 걸지 않았을 경우
-> 물론 이 경우에도 next.js 에 설정된 기본값으로 메모리 제한이 설정이 되지만 작성한 코드와 기능에 따라 기본값보다 더 큰 메모리가 필요하여 OOM 발생 -
next.js 에서 메모리 제한을 잘 걸었음에도 불구하고 클라우드 인프라에서 그것보다 더 작게 POD에 메모리 limt을 주었을 경우
클라우드 인프라에서 2번의 이유로 정확한 제한값을 모르는 상태에서 추측성으로 계속 메모리를 올리면서 띄워야했기에 8Gi를 주게 된 상황까지 갔다고 추측됩니다.
프론트와 같이 테스트 진행 결과 최종적으로 1Gi 정도에도 힙메모리 제한만 걸어준다면 무사히 next.js가 동작하는 것을 확인하였습니다.
📌 결과
1Gi로 QA를 진행해보려 했으나 Node.js의 기본 힙메모리 제한이 2Gi이기 때문에 그것보다는 작게 주는 것은 의미가 없다고 판단하여 next.js 자체의 메모리 제한은 2Gi, POD limit은 에이전트 및 혹시 모를 프로세스들을 대비하여 2.3Gi으로 최종 설정하였습니다..
8에서 2.3 으로 메모리가 절감됨에 따라 그에 따른 서버비용도 71.3% 절감이 예상됩니다. 👍🏻
