VisualVM监视
来源:互联网 发布:免费网络硬盘哪个好 编辑:程序博客网 时间:2024/05/21 04:44
整理下怎么通过JDK提供的视图化工具来监视java应用。
1.配置文件
远程机器上,建立jstatd 的 security policy 文件,比如建立在$JAVA_HOME/bin目录下:文件jstatd.all.policy:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
2.启动jstatd
同样,也是在远程机器上,进入$JAVA_HOME/bin目录,执行:jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.logCalls=false -p 1099 &
jstatd的详细说明可以参照:http://docs.oracle.com/javase/6/docs/technotes/tools/share/jstatd.html
这里有对jstatd各个命令选项的详细说明。
3.打开监视客户端
一样来说,我会在客户端(比如本机PC)来监视远程机器,进入客户端的jdk/bin目录下,会看到有jvisualvm.exe打开jvisualvm.exe,
如果需要添加监视的插件,可以进入:工具->插件,进行下载初始化相关的插件来,这里我已经初始化了Visual GC来监视内存方面。
本地会自动扫描到本地的java应用
而远程需要添加远程的ip
添加远程ip后,发现还是无法自己扫描到远程的java应用时,可能是没将远程机器的ip设置好,
执行命令hostname -i
如果是127.0.0.1,则需要设置成远程机器的/etc/hosts文件,将远程机器ip设置(而不是127.0.0.1),
设置好远程机器ip后,可以自动扫描到远程的java应用了。
如果设置好hostname还是无法扫描到java应用,则需要启动Jstatd时还加上参数-J-Djava.rmi.server.hostname=192.168.20.112,192.168.20.112为远程hostname。
可以扫描到远程的java应用,但发现监视不了CPU这项,这个需要我们添加JMX监视,
需要在java应用的启动参数加上:-Djava.rmi.server.hostname=192.168.20.112 -Dcom.sun.management.jmxremote.port=18999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
其中192.168.20.112是远程被监视机器的ip。
如果需要设置JMX连接密码,可以-Dcom.sun.management.jmxremote.authenticate=true
详细添加JMX可以参照:https://htmlpreview.github.io/?https://raw.githubusercontent.com/visualvm/visualvm.java.net.backup/master/www/jmx_connections.html
4.JMX密码连接
在$JAVA_HOME//jre/lib/management目录下的jmxremote.password.template文件,复制一份名字改成jmxremote.password,
# Following are two commented-out entries. The "measureRole" role has# password "QED". The "controlRole" role has password "R&D".## monitorRole QED# controlRole R&D
打开注释:
monitorRole QEDcontrolRole R&D
则表示JMX的连接角色密码为monitorRole / QED,或者controlRole / R&D,这两种是不同的角色,在文件jmxremote.access(也是在同一个目录下)中会说明这两个角色的权限:
# Default access control entries:# o The "monitorRole" role has readonly access. # o The "controlRole" role has readwrite access and can create the standard# Timer and Monitor MBeans defined by the JMX API.monitorRole readonlycontrolRole readwrite \ create javax.management.monitor.*,javax.management.timer.* \ unregister连接JMX时,输入对应角色密码即可:
远程机器的java应用重新启用后,则监视客户端需要添加JMX连接,连接成功后,则可以看到CPU等监视项了。
...
阅读全文
0 0
- VisualVM监视
- 利用VisualVM监视Storm Worker性能
- VisualVM
- VisualVM
- VisualVM
- VisualVM
- VisualVM
- visualVM
- VisualVM
- VisualVM
- VisualVM
- VisualVM
- Windows/Linux环境下使用Java VisualVM进行Java程序性能分析与监视
- Java VisualVM
- visualvm 配置
- VisualVM使用说明
- java VisualVM
- VisualVM使用
- 磁盘
- 网站认证和授权(自定义权限)
- win7 VS2008 不需新建工程 命令行编译lua5.1.5
- 9.其它信息提供者之MultiProvider 与 InfoSet
- 训练日记-19
- VisualVM监视
- 【hpu oj 1022: 985的因子对难题 [数学]】
- servlet两小时项目
- 保护自己的网页不被放入框架
- 变量初始化问题
- AIC准则
- 字符个数统计
- 员工管理系统
- composer 錯誤Call to undefined method Composer\Package\RootPackage::getConfig