星期五, 十一月 17, 2006

JBOSS如何同JVMSTAT 远程remote一起工作?

区分两种情况.
1.JBOSS 运行jdk 5.0
2.JBoss 运行 j2sdk 1.4.2

1.JBOSS 运行jdk 5.0

1.1 启动参数加入JAVA_OPTS="$JAVA_OPTS -XX:+UsePerfData"

1.2 然后在运行jstatd的地方建立一个policy文件。
jstatd.policy
grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission; };
1.3 启动jstatd,直接在命令行运行jdk 5.0自带的 {jdk5.0_home}\bin\jstatd
1.4 确认Jboss和jstatd都一起运行 ,运行jdk 5.0自带的jps 得到如下结果:
5911 Main
5776 Jstatd
6075 Jps

1.5 再客户段 运行 jvmstat 3.0 bat或bin目录下的的visualgc.cmd 5911@szse199

注意:hostName必须用域名.

得到如下图片.


2.JBoss 运行 j2sdk 1.4.2
2.1 首先下载.jvmstat 2.0.
展开到一个目录下比如c:\jvmstat.及服务器上/root/jvmstat.

2.2 配置服务器端的policy.
设置 export JVMSTAT_HOME=/root/jvmstat
到 $JVMSTAT_HOME/policies 目录下 配置policy.
configurepolicy PerfAgentAll.tmpl PerfAgent.policy
2.3 运行 perfagent (rmi registry server)
$JVMSTAT_HOME/bin/perfagent -p 12345
注意:-p 选择 在有端口冲突(1099)的情况下使用.
这样在远程使用的时候,需要指定端口
2.4 得到运行的lvmid
运行$JVMSTAT_HOME/bin/jvmps 得到jboss的lvmid
7565 org.jboss.Main
7701 jvmps.jar
7632 perfagent.jar
2.5 在远程client机器上运行监控程序.
c:\jvmstat\bat\visualgc.cmd 7565@szse199:
12345
得到图形如上: