10월, 2016의 게시물 표시

JMX Remote 설정 후 Heap dump 추출하기

이미지
Java Mission Control 로 Heap dump 추출하는 방법 1. JVM Browser 탭 에서 Heap dump를 추출하고자 하는 대상 선택 2. MBean Server 클릭 3. MBean Browser 탭 클릭 (우측 하단 두번째 탭) 4. MBean Tree 에서 보이는 폴더명 중 com.sun.management 클릭 5. HotSpotDiagnostic 항목 클릭 6. MBean Tree 우측 창에 MBean Features 에서 Operations 탭 클릭 7. dumpHeap : void 항목 클릭 8. p0와 p1 항목의 value 에 각각  dump 파일명 과  true  값을 지정 9. 하단의 Execute 버튼 클릭하여 dump 파일 생성 및 확인 10. dump 파일은 프로세스의 현재 작업중인 폴더에서 찾을 수 있다.  만약 ps 명령어를 통해 알아낸 pid가 4455라면 pwdx 4455 명령어를 통해  현재 작업중인 폴더를 알아낼 수 있다. 동일한 파일명이 존재할 경우 아래와 같은 에러 발생한다.  파일명 변경 후 execute 하여 생성하면 된다.  refs:  heap dump 추출방법

JMX Remote 설정

이미지
1. 기본 tomcat 에는 JMC 연결을 위한 모듈이 없기 떄문에 catalina-jmx-remote.jar 파일을 다운로드 한다.  나는 Tomcat 8 을 사용하고 있어 아래 링크에서 다운로드 받았다.  자신의 Tomcat 버전에 맞는 파일로 받아서 다운로드 받을것을 권장한다.  주의) Tomcat 8.0.28 버전을 사용하고 있을 때 Tomcat 8 버전의  catalina-jmx-remote.jar 다운로드 받아 실행하였더니  파싱에러가 발생하였다. Tomcat 7 버전의 파일로 다시 받아 실행하였더니 정상적으로 작동하였다.  Tomcat 7과 Tomcat 8 의 catalina-jmx-remote.jar 은 해시값이 다른 즉 동일한 파일이 아니었기 때문에 8.0.28 버전에 일부 반영이 되지 않은 부분이 있었다는 생각이 든다. Tomcat8버전의 jmx파일 다운로드 링크 2. server.xml 에 jmx 리스너 등록 3. jmx 환경설정을 위한 쉘 스크립트 생성 후 실행 (실행권한 줄 것) 4. jmc.exe 파일을 클릭하여 실행 5. 왼쪽 상단의 File > Connect.. 를 클릭하여 신규 연결생성 6. 연결할 서버의 주소와 포트정보 입력 7. 테스트 연결 확인   ( status 가 ok가 아니라면 jmx 리스너 또는 방화벽  확인할 것 ) 8. JMX 콘솔 실행 9. 완료 화면 refs:  https://www.lesstif.com/pages/viewpage.action?pageId=20776824