openJDK JMC(
Java Mission Control) 사용방법
1. 대상서버에 jstatd 데몬을 구동한다.
모니터링시 해당 데몬으로 접근하여 서버에 JVM 정보를 가져온다.
정책파일을 수정해서 권한을 추가해 주어야 JMC에서 접근하여 정상적으로 값을 가져올 수 있다
openJDK의 경우 CentOS 7.x에서 설치시 PATH는 아래와 같다.
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/lib
해당폴더에 아래 파일을 만든다 (tools.jar 파일이 있는곳에 만들면 된다)
#vi tools.policy
grant codebase "file:[absolute-path-to JAVA_HOME]/lib/tools.jar" {
permission java.security.AllPermission;
};
백그라운드로 띄운다
#jstatd -p 1099 -J-Djava.security.policy=${JAVA_HOME}/lib/tools.policy &
2. WAS Process에 JMX 설정을 한다. JVM에서 열어도 되고 tomcat 리스너중에 JMX리스너를 열어도 된다. 여기서는 JVM에서 연다
./catalina.opts.common.sh (JVM 옵션을 넣을 수 있는곳이라면 아무대나 잘 넣자)
OPT_JMX="-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.port=30088 \
-Dcom.sun.management.jmxremote"
3. JMC openjdk 버젼을 받아보자 oracle jdk에 있는거랑 별 차이없다
http://jdk.java.net/jmc/
JMC 7 Early-Access Buildsr
4. JMC 띄우고 원격으로 대상서버 접속하면 끝
요런화면
요런화면도 볼 수 있다. 라이브로 덤프도 볼 수 있고 뭐뭐뭐... 기능은 많다
근데 이거 끼우면 overhead를 감안해야 한다
어느정도인지는 잘 모르겠다능...