Micrometer 객체 증가로 인한 메모리 이슈 회고
7
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

Micrometer 객체 증가로 인한 메모리 이슈 회고

이 게시물은 Spring Boot 3.x 환경에서 Micrometer 메트릭 수집으로 인한 메모리 누수 문제와 GC 전략에 대해 다룹니다.

주요 이슈 분석

  • Micrometer 객체(Meter$Id, Tag 등)가 PathVariable 차이로 인해 Old 영역에 누적되는 현상
  • spring.cloud.loadbalancer.stats.micrometer.enabled 설정이 문제 원인으로, LoadBalancer가 URI 정규화를 하지 않고 메트릭을 수집
  • 메트릭 수집 비활성화 및 Micrometer 자동 설정 제외로 문제 대응

GC 전략 비교

  • G1GC는 Old 영역 객체 수거가 제한적이며 메모리가 점진적으로 증가
  • ZGC는 백그라운드에서 전체 영역을 수거해 Heap 사용률을 안정적으로 유지
  • 최종적으로 ZGC로 복귀하여 안정적인 운영 환경 구축

최종 결론

Micrometer 기본 활성화와 PathVariable 증가가 맞물리면서 메모리 누수가 발생하였고, 메트릭 수집 설정 조정과 GC 전략 변경으로 문제를 해결하였습니다.

연관 게시글