jvisualvm结合jstatd进行远程监控

jvisualvm是Jdk自带的,具体点,据说是jdk1.6-07后加到jdk中的。本地监控很简单,在JAVA_HOME/bin中打开jvisualvm即可,所有本机的java程序会自动列出来。我们来说下远程监控的问题。

       

      具体步骤如下,

       1. 启动远端jstatd.

           1.1 配置[b]java[/b]安全访问,将如下的代码存为文件 jstatd.all.policy ,但要放到JAVA_HOME/bin中,其内容如下,

            grant codebase"file:${java.home}/../lib/tools.jar"{ permission java.security.AllPermission; };

           1.2 进入到JAVA_HOME/bin中,执行./jstatd
  ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.0.23(liunx本机ip)

 

2.打开本地的jvisualvm, 右键Remort,选择 "Add Remort Host...",在弹出框中输入你的远端IP,比如192.168.0.23. 连接成功后如图,


       顺便解释下Heap跟PermGen的区别, 一般而言,PerGen放的是类的定义;而Heap里面放的是类的实例;所以一般程序稳定运行后,PermGen基本保持不变,要变也只会增加,因为GC 只会扫描heap中的实例;而Heap变化较大,OutOfMemory一般也是Heap不够了。

 T omcat中配置

  下面我们为54 服务器的 tomcat 配置 jvm 启动参数。 tomcat catalina.sh 中添加如下参数:

java代码   收藏代码
  1. JAVA_OPTS=’-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.1.54  其他配置’

    注:1. -Dcom.sun.management.jmxremote.port :这个是配置远程 connection 的端口号的,要确定这个端口没有被占用

    2. -Dcom.sun.management.jmxremote.ssl=false 指定了 JMX 是否启用 ssl

    3. -Dcom.sun.management.jmxremote.authenticate=false   指定了JMX 是否启用鉴权(需要用户名,密码鉴权)

       2,3两个是固定配置,是 JMX 的远程服务权限的

    4. -Djava.rmi.server.hostname :这个是配置 server IP 的 

  2. 连接成功,现在我们可以远程监控服务器性能,可以配合 jmeter 进行了一个长时间的加压,在加压过程中重点关注了系统资源的使用情况。

猜你喜欢

转载自yunlong167167.iteye.com/blog/2180501
今日推荐