监控工具VisualVM

监控工具VisualVM

首页
https://visualvm.dev.java.net/

下载页面
https://visualvm.dev.java.net/download.html

文档地址
https://visualvm.dev.java.net/docindex.html

入门文档
https://visualvm.dev.java.net/zh_CN/gettingstarted.html

下载得到文件
visualvm_12.zip

解开压缩,拷贝文件夹到工作目录
D:\tool\visualvm

在WINDOWS上,找到执行文件
D:\tool\visualvm\bin\visualvm.exe

打开软件操作界面成功,在WINDOWS上安装完成。本机启动的JVM都可以在这里监控到了。

另外可以安装eclipse的插件,我没有安装。
插件地址:
https://visualvm.dev.java.net/eclipse-launcher.html

安装visualVM的plugins
到Plugins页面勾上Available Plugins然后Install

试试连接远程主机

要从远程应用程序中检索数据,需要在远程 JVM 上运行 jstatd 实用程序。
jstatd文档地址http://java.sun.com/javase/6/docs/technotes/tools/share/jstatd.html
我连接到一台redhat主机上,上面运行的JDK是
# java -version
java version "1.5.0_17"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_17-b04)
Java HotSpot(TM) Client VM (build 1.5.0_17-b04, mixed mode, sharing)

如果直接执行jstatd -J-Djava.security.policy=all.policy
报错如下:
Could not create remote object
access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write)
java.security.AccessControlException: access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
at java.security.AccessController.checkPermission(AccessController.java:427)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.System.setProperty(System.java:699)
at sun.tools.jstatd.Jstatd.main(Jstatd.java:122)


在JDK下创建文件:vi jstatd.all.policy,文件内容如下:
grant codebase"file:${java.home}/../lib/tools.jar"{ permission java.security.AllPermission; };

./jstatd -J-Djava.security.policy=jstatd.all.policy
默认端口1099
./jstatd -J-Djava.security.policy=jstatd.all.policy -p 2020
设置端口2020

启动成功了,也能telnet ip 1099或者2020上,但是用visualVM连接查看信息失败。

不用visualVM,使用本机的jps试试看,得到结果
命令:
jps 10.206.19.59
返回结果:
Error communicating with remote host: Connection refused to host: 127.0.0.1; nes
ted exception is:
java.net.ConnectException: Connection refused: connect

查了网上的资料,错误原因如下:
linux系统使用/etc/hosts文件中localhost解析ip为127.0.0.1,当客户端向服务器Lookup时,服务端就会把解析出来的地址发给客户端,让客户端再根据这个地址去连接,客户端收到127.0.0.1这个地址,也使用/etc/hosts文件中localhost解析ip去连接,实际连接的是自己本身。
我把服务器的IP改为了它的真实IP 192.168.95.129,这是我的NAT的VM redhat虚拟机。

在Remote里面增加Add Remote Host,里面填写IP,端口如果默认的1099就不用改了,如果是自定义的2020,那还要打开Advance改下端口。添加完毕后就可以观察本地JVM一样查看远端JVM的情况了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值