使用visualvm远程监控JVM

参考:http://blog.sina.com.cn/s/blog_4e90b3ba0100muco.html

1、首先要修改JDK中JMX服务的配置文件,以获得相应的权限:

在jdk-1.6.0_26/jre/lib/management找到jmxremote.password.template,

两种方法:

(1)使用该方法,则对应于步骤2中的(1)(2)(4)

  a. 将jmxremote.password.template文件复制为jmxremote.password
  b. 调整jmxremote.access和jmxremote.password的权限为只读写,可以使用如下命令
    chmod 600 jmxremote.access jmxremote.password
  c. 打开jmxremote.password文件,去掉
  # monitorRole QED
  # controlRole R&D
  这两行前面的注释符号

(2)使用该方法,则对应于步骤2中的(1)(2)(3)(4)

    a.拷贝jmxremote.password.template到JAVA应用所在用户(比如用户为admin)的家目录下的任一子目录,修改属主为admin

    b.mv jmxremote.password.template jmxremote.password

    c.chmod 600 jmxremote.access jmxremote.password

    d.去掉注释

如下即采用方法2:

[admin@v125013136 management]$ ll
总计 28
-rw-r--r-- 1 root root  3998 2011-10-24 jmxremote.access
-r--r--r-- 1 root root  2856 2011-10-24 jmxremote.password.template
-rw-r--r-- 1 root root 14097 2011-10-24 management.properties
-r--r--r-- 1 root root  3376 2011-10-24 snmp.acl.template
[admin@v125013136 management]$ pwd
/opt/taobao/install/jdk-1.6.0_26/jre/lib/management
[admin@v125013136 management]$ ll
总计 28
-rw-r--r-- 1 root root  3998 2011-10-24 jmxremote.access
-r--r--r-- 1 root root  2856 2011-10-24 jmxremote.password.template  //JDK是root用户的
-rw-r--r-- 1 root root 14097 2011-10-24 management.properties
-r--r--r-- 1 root root  3376 2011-10-24 snmp.acl.template
[admin@v125013136 management]$ cd /home/admin/ju/conf/
[admin@v125013136 conf]$ ll
总计 212
-rw-r--r-- 1 admin admin 38218 2010-08-03 bindings.xml
-rw-r--r-- 1 admin admin    87 2010-05-31 console-users.properties
-rw-r--r-- 1 admin admin 12113 2012-10-17 jboss-log4j.xml
-rw-r--r-- 1 admin admin 37315 2010-08-03 jboss-service.xml
-rw-r--r-- 1 admin admin   281 2010-08-03 jmx_console_jboss_web.xml
-rw-r--r-- 1 admin admin  3145 2010-08-03 jmx_console_web.xml
-rw------- 1 admin admin  2862 2010-05-31 jmxremote.password  //JAVA应用为admin用户的,权限为600

 

2、修改jboss或tomcat启动文件中的JVM配置

JAVA_OPTS="-server -Xms4g -Xmx4g -Xmn2g -XX:PermSize=96m -XX:MaxPermSize=256m -XX:SurvivorRatio=10 -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:+CMSClassUnloadingEnabled -XX:CMSMaxAbortablePrecleanTime=5000 -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCompressedOops -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/logs -verbose:gc -Xloggc:/home/admin/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=10000 -Dsun.net.client.defaultReadTimeout=30000 -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=$BASE_HOME/conf/jmxremote.password -Djava.rmi.server.hostname=$HOSTNAME"

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

(2)-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true:这两个是固定配置,是JMX的远程服务权限的

(3)-Dcom.sun.management.jmxremote.password.file=$BASE_HOME/conf/jmxremote.password:指定jmxremote.password文件所在路径

(4)-Djava.rmi.server.hostname=$HOSTNAME" :这个是配置serverIP的,要使用serverIP最好在机器上先用hostname –i看一下IP是不是机器本身的IP,如果是127.0.0.1的话要改一下,否则远程的时候连不上,目前我们的server上我已经都改好了(如-Djava.rmi.server.hostname=10.20.150.218

 

3、Windows客户端配置

 

 

posted on 2013-10-23 19:41  gogoy  阅读(407)  评论(0编辑  收藏  举报

导航