728x90
반응형
SMALL
메모리 누수나 모듈의 문제 분석을 위해
thread dump, heap dump 등을 위해 jmap, kill -3 등을 이용하는데
다음과 같은 오류가 발생하는 경우가 있다.
Exception in thread "main" com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file ....
target process 43121 doesn't respond within 10500ms or HotSpot VM not loaded
열심히 구글링 하면 java process 의 실행 계정과 현재 jmap, jstack 을 실행하는 계정이 다른것이니
sudo -u 계정명 jmap... 하라는 글도 있고
O.S 바이너리 덤프를 뜨고 해당 덤프로부터 heap dump를 추출하라는 의견도 있다.
gcore -o core.dump [pid] 후 jmap -dump:format=b,file=dump.hprof [자바경로][바이너리덤프]
정확히는 모르겠으나 openjdk 에서 jmap 은 jhsdb 를 이용해서 실행하는 것으로 변경되었고 이것을 이용하면 된다.
옵션을 보면 --heap 을 통해 현재 heap 상태를 출력해서 볼수도 있다.
--binaryheap 이라는 옵션을 통해 hprof binary format 의 dump를 생성시킬 수 있다는 걸 확인할 수 있다.
결국 ... 이렇게 하면 된다.
jhsdb jmap --binaryheap --dumpfile dump.hprof --pid 43121
728x90
반응형
LIST
'IT > JAVA' 카테고리의 다른 글
Netty(2) - Bootstrap (0) | 2021.02.04 |
---|---|
Netty 란 (0) | 2021.02.02 |
webclient - bodyToMono 예외 처리 (0) | 2020.11.20 |
Synchronized 잘 알고 사용하기 (0) | 2020.11.05 |
ServletFilter 를 이용한 Download File 분석 (0) | 2020.09.29 |