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
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions