Home
작심삼일 블로그
Cancel

JVM 메모리 누수 > Native 메모리 > glibc malloc

몇 개월 전 파트 내 애플리케이션에서 발생한 메모리 누수를 트러블 슈팅 & 픽스한 적이 있고 포스트로 다루었다. 누수를 잡아낸 후에도 미량이지만 애플리케이션 전체 메모리 사용량 (RSS 기준)이 계속해서 늘어나고 있었다. 원인을 파헤쳐보니 크리티컬한 내용은 아니나, GNU C 라이브러리 (glibc) 위에 구동되는 JVM 은 알게 모르게 영향...

JVM 메모리 누수 > Heap > lettuce

최근 파트 내 애플리케이션의 JVM 메모리 누수를 찾아낸 뒤 픽스했다. 과정을 정리해두면 메모리 누수를 또 찾고 있을 미래의 나에게도 도움이 될 것 같아 정리해본다. 트러블 슈팅 배경 애플리케이션 파드가 일정 시간 이상 에이징이 되면 RESTART 되고 있다. 사내 메트릭 분석 툴에 힙 히스토그램을 시계열로 분석할 수 있는 기능이 있어 이를 활용해...

JVM Container Awareness Bug (cgroup v2) > JDK 11.0.16

저처럼 글 읽기를 싫어하시는 분들을 위한 결론 Kubernetes 환경에서 JDK 11 을 사용중이라면 JDK 11.0.16 이상의 버전 사용을 권장한다. JDK 12 - 14 버전을 사용중이라면 15 이상의 버전 사용을 권장한다. 그렇지 않으면 소중한 Pod 가 OOMKilled 당할 수 있다. 특히 Init...

spring.web.resources.add-mappings 옵션

기대와 다른 DispatcherServlet 의 동작 방식 회사에서 특정 엔드포인트에 접속 시 톰캣 에러페이지가 그대로 노출되는 이슈를 디버깅하다가 DispatcherServlet 의 기이한(?) 동작을 발견하고 왜 그런지 궁금하여 알아봤다. 컨트롤러가 바인딩되지 않은 경로로 접속을 하면 당연히 DispatcherServlet 에서 NoHandle...