top bar

글 목록

2015년 9월 23일 수요일

[Performance] VisualVM + JMX 연동을 통한 tomcat cpu 사용량 모니터링

 지난 번에는 VisualVM과 Jstatd를 연동하여 remote jvm 을 모니터링하는 방법을 살펴보았다. 하지만 위 방법은 원격지 서버의 cpu 사용률까지 모니터링 하지는 못한다는 단점이 있었다.

이번 포스팅 에서는 'JMX'를 이용하여 원격지 jvm의 cpu사용량을 모니터링 해보도록 하겠다.

JMX란?



 JMX(Java Management Extensions)는 프로그래머들에게 자바 어플리케이션의 모니터링과 관리 기능을 제공한다. 실제로 이 API는 웹서버에서 네트워크 디바이스, 웹폰에 이르기까지 자바로 이용 가능한 것은 어느 것이든 로컬 혹은 원격으로 처리 할 수 있게 한다. JMX 기술은 JCP(Java Community Process)에 의해 개발된 밀접한 관계의 두 스펙, Java Specification Request (JSR) 3: Java Management Extensions (JMX) Specification 와 JSR 160: Java Management Extensions (JMX) Remote API 1.0에 의해 정의된다.


톰캣 구동 스크립트에 JVM 옵션 추가



매우 간단하다.

먼저 톰캣서버를 구동하기전에, bin/catalina.sh 쉘스크립트 파일에 아래와 같이 jvm 옵션을 추가해야 한다.
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=[port] -Djava.rmi.server.hostname=[ip address]
해당 옵션을 추가한후에 톰캣을 구동한다.


VisualVM 에서 모니터링하기



1) Remote > Add Remote Host...















입력창이 뜨면 원격지의 IP를 입력한다

2) Add JMX Connection

















3) port 입력















jvm 옵션 추가시 입력했던 port를 입력한뒤 OK를 누르면 아래와 같이 생성된다


4) Sampler 탭에서 모니터링

이제 아래와 같이 원격지 tomcat 서버 전체의 cpu 사용량과 
각 클래스 및 메소드의 cpu사용량을 확인 할 수 있다!


댓글 없음:

댓글 쓰기