핵심 요약
여기어때가 Docker 환경에서 JVM 힙은 멀쩡한데 네이티브 메모리 누수가 발생하는 현상을 추적·분석하고, Inflater 관련 네이티브 버퍼를 닫아 RSS를 크게 감소시키는 해결책을 제시했습니다.
구현 방법
- jemalloc + jeprof로 네이티브 할당 전체 추적
- LD_PRELOAD 및 MALLOC_CONF로 프로파일링 설정
- jeprof로 네이티브 malloc 경로 확인(Inflater)
- async-profiler -e alloc로 자바 경로 연결
- 스트림 close로 Inflater 자원 해제
주요 결과
- 스트림 close로 RSS가 1328MB baseline에서 516MB로 감소
- jemalloc 설정: jemalloc + narenas(연관 설정) 시 1158MB
- MALLOC_ARENA_MAX=1: 1272MB
- 기본 glibc: 1292MB
- baseline/기본 구성: 1328MB
- jemalloc 기본, 컨테이너: 1713MB


