언어/JAVA

가비지컬렉션 GC heap dump 분석

벨포트조던 2021. 6. 3.
반응형

조건

쿠버네티스 파드 메모리 증가로 어떤게 쓸데없이 메모리를 차지하는지 분석, 수정이 필요함 

 

방법

가비지 컬렉션 찾는거 검색하니까, 대부분 jmap 으로 heapdump 생성을 하고있음

나도 마찬가지로 jmap heapdump 떠서 분석하려함

eclipse memory analyzer (MAT)를 실행하여 분석하려고 함

https://blog.naver.com/pcmola/222038466393

-> 정확한 분석이 안됨. 파드 메모리가 보통 5~6G 였는데 해당툴로 돌려보면 heap이 64Mb 로 나옴

( heap이 아닌 다른데서 누수가 있거나, 해당 툴이 정확한 분석을 못한다고 둘중 하나로 판단 )

-> 우선 다른 툴로도 한번 실행해보기로함 

-> jdk 에 기본설치된 visual VM 으로 돌려봄

https://jnylove.tistory.com/335

-> 좀더 자세한 데이터가 나왔다 그러나 뭔가 확실히 보이지 않았다

-> jmap 히스토그램이라는게 있어서 이거 조회해보았음

https://m.blog.naver.com/PostView.naver?blogId=kbh3983&logNo=220999618166&proxyReferer=https:%2F%2Fwww.google.com%2F

-> 문자열이 가장 많은 바이트수를 차지하는 걸 확인했다. 이외로 중복되는 jersey 객체생성이 있어서 싱글톤으로 처리

 

현재까지 결과 

솔직히 정확한 원인은 해당 pod heapdump로 나오지 않았음.

여러 조회방법으로 추측을 통해 문자열 생성을 stringbuilder로 변경, 객체생성의 비효율 줄임 

현재까지는 메모리 증가량 안보임 

 

 

 

 

 

 

반응형

댓글