Closed JunsuLime closed 3 years ago
ps -ef | grep {application_name}
혹은 jps
를 통해 process id 를 얻자.
jmap -dump:format=b,file=파일명<PID>
jhat -J-mx2048m 파일명
을 실행
localhost:7000 에서 확인가능하다.
(jhat 은 java9 이후로 사라진듯? 확인 마저 해보자) 음 근데 이걸로 보느니!!!!! 다른 방법이 있따!! 이걸로 켜보니 내가 이해 못할 정보들밖에 없다.
View > Tool Windows > Profiler 에서 heap dump 한 memory snapshot 파일을 가져와서 본다.
*.hprof 파일
용어참고 Shallow heap : 하나의 객체가 소비하는 메모리 용량. 객체 레퍼런스는 하나당 아키텍처에 따라 32bits(혹은 62bits)를 차지한다. Ratained heap : 해당 객체의 모든 인스턴스를 GC했을 때 확보할 수 있는 메모리 총량. (https://kwonnam.pe.kr/wiki/java/memory)
https://www.jetbrains.com/help/idea/analyze-hprof-memory-snapshots.html
참고로 java program 실행 시 OOM 발생하면 자동으로 heapdump 를 남길수 있게 할 수 있다.
써보면서 느낀점
=========================== 요약
jps 를 통한 PID 추출
jps
jmap 을 이용한 heapdump
jmap -dump:format=b,file={OUTPUT_FILE} {PID}
목적
참고자료
프로세스
(어떻게 추출할것인가? / 어떤 분석툴을 활용할 것인가?)