Skip to content

프론트엔드 힙메모리 제한에 맞는 POD limit 메모리 설정 및 가동 테스트 #29

@jokbalkiller

Description

@jokbalkiller

📝 프론트엔드 힙메모리 제한에 맞는 POD limit 메모리 설정 및 가동 테스트

🎯 목표
현재 8Gi를 주고있는 프론트엔드 POD의 메모리를 절감합니다.


📖 배경
OOM 발생 이유는 다음과 같은 2가지의 요소가 존재합니다.

  1. next.js 자체 수준에서 메모리 제한을 걸지 않았을 경우
    -> 물론 이 경우에도 next.js 에 설정된 기본값으로 메모리 제한이 설정이 되지만 작성한 코드와 기능에 따라 기본값보다 더 큰 메모리가 필요하여 OOM 발생

  2. next.js 에서 메모리 제한을 잘 걸었음에도 불구하고 클라우드 인프라에서 그것보다 더 작게 POD에 메모리 limt을 주었을 경우

클라우드 인프라에서 2번의 이유로 정확한 제한값을 모르는 상태에서 추측성으로 계속 메모리를 올리면서 띄워야했기에 8Gi를 주게 된 상황까지 갔다고 추측됩니다.


📘 테스트
image

프론트와 같이 테스트 진행 결과 최종적으로 1Gi 정도에도 힙메모리 제한만 걸어준다면 무사히 next.js가 동작하는 것을 확인하였습니다.


📌 결과
1Gi로 QA를 진행해보려 했으나 Node.js의 기본 힙메모리 제한이 2Gi이기 때문에 그것보다는 작게 주는 것은 의미가 없다고 판단하여 next.js 자체의 메모리 제한은 2Gi, POD limit은 에이전트 및 혹시 모를 프로세스들을 대비하여 2.3Gi으로 최종 설정하였습니다..

8에서 2.3 으로 메모리가 절감됨에 따라 그에 따른 서버비용도 71.3% 절감이 예상됩니다. 👍🏻

Metadata

Metadata

Labels

인프라질문 리스트의 직무 구분을 위한 라벨프론트엔드질문 리스트의 직무 구분을 위한 라벨

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions