Java VisualVM을 이용해서 Remote 장비 리소스 모니터링하기

Programming/Java 2014.04.18 댓글 Joshua95

* Java VisualVM을 이용해서 Remote 장비 리소스 모니터링하기

 

Java로 서버를 구동하다 보면, 자바의 속이 궁금할 때가 참 많습니다.

도대체 메모리를 어느 스레드가 얼마나 쓰고 있는 것인지, 어떤 스레드가 도대체 CPU를 그렇게 잡아 먹고 있는 것인지, 디스크 사용량은 얼마나 되는 것인지 등등 속을 알 수 없어서 답답합니다. 이러한 답답함을 해결할 수 있는 쉬운 방법 중에 하나가 VisualVM이라는 툴을 이용해서 서버의 내부를 들여야 보는 것지요.

CPU와 메모리, 디스크는 물론이고 각 스레드별 사용 메모리까지도 파악할 수 있어서 유용하게 디버깅이나 모니터링이 가능합니다.


Java VisualVM을 사용하기 위해서는 기본적으로 다음 작업을 수행해 주어야 합니다.


1) 서버의 catalina.sh 설정을 변경한다.

- 파일 위치: /usr/local/tomcat/bin/catalina.sh

- 아래의 설정을 추가 

 

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true \

                      -Dcom.sun.management.jmxremote.port=9090 \   <-- 모니터링에 사용할 포트 입력

                      -Dcom.sun.management.jmxremote.ssl=false \

                      -Dcom.sun.management.jmxremote.authenticate=false \

                      -Djava.rmi.server.hostname=192.168.10.11"   <-- 서버의 IP를 입력

                                                      

2) tomcat 재시작한다.

                                                      

3) iptables 설정을 변경한다. (일단 다 열어주자)

iptables -P INPUT ACCEPT

iptables -F

 

4) PC Java VisualVM에서 Remote 에 해당 장비 추가한다. (Add JMX Connection...)

 

5) 해당 장비 모니터링이 잘 보이는 것을 확인한다.


끝.


 - From Joshua(2014.04.18)

'Programming > Java' 카테고리의 다른 글

Quartz의 misfired trigger 처리 정책  (0) 2014.05.19
JVM 메모리 설정  (0) 2014.04.21

댓글