JVM Heap 설정과 OOMKilled

JVM Heap 설정과 OOMKilled
Kubernetes Pod의 OOMKilled 원인을 Memory Limit만으로 보지 않고 JVM Heap 설정까지 함께 점검했습니다. MaxRAMPercentage를 낮추자 Full GC가 정상 동작하며 재시작 문제가 해소됐습니다.
#Kubernetes#Java
20005분
새로운 기술 블로그가 추가되었어요

Kubernetes Pod의 OOMKilled 원인을 Memory Limit만으로 보지 않고 JVM Heap 설정까지 함께 점검했습니다. MaxRAMPercentage를 낮추자 Full GC가 정상 동작하며 재시작 문제가 해소됐습니다.

Go GC만 믿고 메모리 증가를 넘기면 원인 파악이 늦어질 수 있음을 다뤘습니다. cgo 누수 탐지와 GOGC, GOMEMLIMIT 조절로 메모리 사용량을 개선하는 방법을 설명했습니다.


C++로 운영하던 대규모 트래픽 서버를 Java와 Spring Boot로 전환한 과정을 정리했습니다. 성능 검증, Canary 배포, GC 개선까지 거쳐 안정적으로 이관했습니다.


메모리 누수의 개념과 원인을 GC Root 관점에서 설명했습니다. 리소스 해제, static 변수 관리, 약한 참조 활용으로 예방하는 방법을 정리했습니다.

JEUS 내부 모듈의 비정상적인 byte 배열 할당으로 OutOfMemoryError가 발생했습니다. 로그 교차 분석과 역컴파일을 통해 원인을 찾고 패치 적용으로 해결했습니다.