jvisualvm을 이용하여 remote서버 감시

grant codebase “file:/usr/java/default/lib/tools.jar” { permission java.security.AllPermission; }; 실행할때는 아래와 같다.

./jstatd -p 1234 -J-Djava.security.policy=/usr/java/default/lib/tools.policy  &
확인할때는 아래와 같이 한다. (리모트에서도 확인가능)
./jps -l -m -v rmi://localhost:1234
(3) 당신의 작업PC에서 jvisualvm을 실행한다. (4) 메뉴의 네트워크 설정에서 SOCKS프록시에 localhost:11099를 설정한다. (5) jvisualvm에서 리모트 감시할 서버의 IP를 입력한다. ssh Dynamic전송하고 있으므로 리모트 서버의 Private IP를 입력해도 무방하다. 포트는 jstatd에서 지정한 1234을 입력한다. (1099 RMI포트가 아닌 jstatd의 포트이다.) (6) 추가후 조금 기다리면 java process 리스트가 표시될 것이다. 스레드나 샘플러를 확인하기 위해서는 jmx로 접속이 필요하므로 리모트에서 작동하는 Java프로세스의 JVM옵션에 아래를 추가해야 한다.
-Dcom.sun.management.jmxremote.port=3333
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
jstatd로는 JVM메모리와 CPU정보를 확인할 수 있고 jmx로는 스레드와 심플러정보를 확인할 수 있다. 참고사이트: http://www.herongyang.com/Java-Tools/jstat-jstatd-JVM-Remote-Monitoring-Server.html http://stackoverflow.com/questions/9939883/can-not-start-jstatd-in-linux http://www.fukabee.com/blog/2011/10/31_151716.php ]]>

Related Posts