jstatd나 JMX 기반으로 JVM의 메모리 사용량 및 스레드 동작 상태를 모니터링

JMX를 이용한 모니터링

JVM 기동시 아래 옵션을 주고 기동

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=XXXX
-Dcom.sun.management.jmxremote.ssl=false

jstatd 를 이용한 모니터링

이미 구동된 JVM에 대한 모니터링이 가능함 하지만 JMX에 비해 일부 기능에 제약이 있음

# 1. jstatd.all.policy 작성
grant codebase "file:${java.home}/../lib/tools.jar" {
    permission java.security.AllPermisssion;
}

# 2. RMI 레지스트리에 사용할 포트를 등록
$ rmiregistry <PORT>

# 3. jstatd 기동
$ jstatd -J -Djava.security.policy=jstatd.all.policy -p <PORT>

# 4. VisualVM 으로 해당 포트로 접속하여 모니터링