forcemax's

서버에 JVM에서 도는 프로그램의 메모리 사용량을 모니터링 할 일이 생겨서 관련 내용을 검색하던 중 VisualVM을 찾았고 이를 활용하기 위해서 jstatd를 서버에 구동해야 한다는 것을 확인하고 설정했다.


여러 자료를 확인해본 결과 다들 아래와 같이만 하면 된다고 했다.


~/jstatd.all.policy

grant codebase "file:${java.home}/../lib/tools.jar" {

   permission java.security.AllPermission;

};


~/jstatd_run.sh

#!/bin/bash


$JAVA_HOME/bin/rmiregistry 2020 &

$JAVA_HOME/bin/jstatd -J-Djava.security.policy=jstatd.all.policy -p 2020 &


그런데 정보가 안나온다? 왜?


stackoverflow에 관련 자료를 검색해본다.

버그인거 같단다.

다음과 같이 바꿔주었더니 정상동작헀다.


~/jstatd_run.sh

#!/bin/bash


$JAVA_HOME/bin/rmiregistry 2020 &

$JAVA_HOME/bin/jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.0.42 -p 2020 &


192.168.0.42는 저 서버의 IP 주소이다. 저게 없어서 동작안했다는게 말이되나?