자바 모니터링 툴 visualVM visualGC
java 에서 제공하는 모니터링툴 visualVM
http://visualvm.java.net/gettingstarted.html
다운로드로 가서 zip 파일을 받아 압축을 풀고 bin/visualvm.exe 을 실행하면 애플릿이 뜬다
원격 pc의 vm을 모니터링 하려면 아래를 보라
http://visualvm.java.net/applications_remote.html
remote 기능을 사용하려면 설정이 좀 필요하다
jstatd를 사용하기 위한 설정
(http://docs.oracle.com/javase/6/docs/technotes/tools/share/jstatd.html)
원격 PC의 $JAVA_HOME/jre/lib/security/java.policy 파일을 수정한다 (빨간색칠 부분을 추가해준다)
grant codeBase "file:${{java.ext.dirs}}/*" {
permission java.security.AllPermission;
};
// default permissions granted to all domains
grant {
// Allows any thread to stop itself using the java.lang.Thread.stop()
주석과 함께 설정들...생략...
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
permission java.security.AllPermission;
};
위 설정을 안하면 다음과 같은 오류가 나올 것이다
Could not create remote object
access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")
java.security.AccessControlException: access denied ("java.util.PropertyPermission"
"java.rmi.server.ignoreSubClasses" "write")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372)
at java.security.AccessController.checkPermission(AccessController.java:559)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.System.setProperty(System.java:782)
at sun.tools.jstatd.Jstatd.main(Jstatd.java:139)
원격 PC에서 다음 명령을 실행
[root@localhost ~]# rmiregistry 2020&
[root@localhost ~]# jstatd -J-Djava.security.policy=all.policy -p 2020&
이제 http://visualvm.java.net/applications_remote.html 의 설명대로 따라해본다
jmx를 사용하기 위한 설정
(http://visualvm.java.net/jmx_connections.html)
톰캣을 예로 들면
$CATALINA_HOME/bin/catalina.sh 파일에 JAVA_OPTS를 찾아서 수정한다
빨간색 세줄을 추가해주면 될것이다
JAVA_OPTS="$JAVA_OPTS .... 내용 생략 ..."
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=3333"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
설정이 완료되면 톰캣을 재시작 한다
이제 http://visualvm.java.net/jmx_connections.html 의 설명대로 따라해본다
visualGC는 visualVM의 플러그인으로 설치할 수 있다
visualVM상단의 Tools -> Plugins -> Available Plugins 에 보면 있다
체크박스 선택하고 왼쪽하단에 install을 누르면 설치된다
설치해보면 오른쪽에 visualGC가 나온다. 안보이면 visualVM을 껏다가 켜보시라