* 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 |
댓글