Moait
홈인기 피드모든 블로그모든 태그
홈인기 피드모든 블로그모든 태그
JVM heap은 멀쩡한데 왜 메모리가 터질까? — Docker 환경 네이티브 메모리 삽질기 (Part 1) 섬네일

JVM heap은 멀쩡한데 왜 메모리가 터질까? — Docker 환경 네이티브 메모리 삽질기 (Part 1)

여기어때 favicon여기어때·DevOps·
JavaDockerOOM KillerNative Memory
2026년 07월 01일0

AI 요약

이 글은 AI가 요약했어요. 정확한 내용은 꼭 원문을 확인해 주세요!

핵심 요약

여기어때가 Docker 컨테이너에서 JVM 힙은 정상인데 메모리가 터지는 현상을 분석했다. Native Memory Tracking(NMT)로 네이티브 메모리의 영향과 OOM Killer의 작동 원리를 파악했고, 9GB대 커밋 vs 14GB RSS 차이를 확인했다. 다음 편에서 jemalloc/jeprof로 네이티브 malloc 경로를 추적한다.

구현 방법

  • 네이티브 메모리 추적: -XX:NativeMemoryTracking=detail로 baseline과 summary.diff 비교
  • 메모리 측정 기준 이해: JVM 힙(-Xmx)과 NMT, cgroup RSS 구분
  • 시도 내용 요약: GC 로그/ Undertow 로그 비활성화, 컨테이너 메모리 제한 명시, JVM 버전 변경 등 다수 시도하였으나 뚜렷한 해결은 미확정

주요 결과

  • NMT Total: reserved=9,621MB, committed=8,919MB; 힙은 8,192MB로 확인, top의 RSS는 14GB로 약 5GB 차이 존재
  • 컨테이너가 OOM Killer에 의해 종료되는 현상 재확인; 힙은 문제가 없으나 네이티브 메모리 증가로 인한 문제로 판단
  • Part 2에서 native malloc 경로 추적 및 RSS 감소 효과를 다룸

연관 피드

%가 높을수록 이 글과 비슷할 가능성이 높아요!
JVM heap은 멀쩡한데 왜 메모리가 터질까? — Docker 환경 네이티브 메모리 삽질기 (Part 2) 섬네일
87%

JVM heap은 멀쩡한데 왜 메모리가 터질까? — Docker 환경 네이티브 메모리 삽질기 (Part 2)

여기어때 favicon여기어때·2026년 07월 01일
No Image
70%

GraalVM Native Image 으로 기동 시간 11배 단축기

티빙 favicon티빙·2026년 04월 16일
No Image
68%

Docker 컨테이너 핵심 실습 \:\ 리눅스 네임스페이스와 cgroup으로 자원 격리·제한

인포그랩 favicon인포그랩·2025년 04월 09일