Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
jokbalkiller opened this issue Dec 27, 2024 · 1 comment
Assignees
Labels
인프라 질문 리스트의 직무 구분을 위한 라벨 프론트엔드 질문 리스트의 직무 구분을 위한 라벨

Comments

@jokbalkiller
Copy link
Member

jokbalkiller commented Dec 27, 2024

📝 프론트엔드 힙메모리 제한에 맞는 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% 절감이 예상됩니다. 👍🏻

@jokbalkiller jokbalkiller added 프론트엔드 질문 리스트의 직무 구분을 위한 라벨 인프라 질문 리스트의 직무 구분을 위한 라벨 labels Dec 27, 2024
@jokbalkiller jokbalkiller added this to the 9주차(12/30 월) milestone Dec 27, 2024
@yuiseo
Copy link
Member

yuiseo commented Jan 3, 2025

프론트에서 서버 관련 로직이 추가되면 추후 해당 제한 용량을 늘려야 할 수도 있습니다.
하지만 로그를 통해 메모리 사용량을 파악할 수 있기 때문에 앞으로도 계속 지표를 추적해 나가는게 중요할 거 같습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
인프라 질문 리스트의 직무 구분을 위한 라벨 프론트엔드 질문 리스트의 직무 구분을 위한 라벨
Projects
None yet
Development

No branches or pull requests

2 participants