jvisualvm,在本地以图形界面的方式远程监控 java运行程序的cpu、内存、线程使用情况,当然可以本地监控,主要用于远程监控tomcat.
它是JDK自带的JAVA性能分析工具,在安装的JDK(需要jdk1.6以上的版本)的bin目录下,点击下jvisualvm.exe图标就能运行起来图形界面。
========================================================================================================================
远程监控配置:
要从本地远程监控应用(tomcat),首先对远程jvm加监控参数。
1、登录远程linux服务器,在tomcat目录下的catalina.sh文件中,搜索“JAVA_OPTS=”,在if里面,添加:
-Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.210.45
1-改port
2-改hostname为远程机器ip
然后保存catalina.sh文件
2、这个时候重启tomcat.
使用命令:nestat -an|grep 8080,查看当前8080端口连接数,只有一个连接数,这个端口是jvisualvm要连接的端口,不能被别的程序占用。
然后给tomcat服务器加压,可以用jmeter给对应tomcat服务器的应用加压,top一下,可以发现CPU占有率立马飙升,这个时候压力就上来了。
3、打开jvisualvm
方式一:通过Windows本地cmd-输入jvisualvm
方式二:在安装的JDK(需要jdk1.6以上的版本)的bin目录下,点击下jvisualvm.exe图标
4、界面左侧有【本地】和【远程】监控
【本地】:程序运行后会自动监控本机运行的java程序,比如打开eclipse,是java程序就会显示在本地
【远程】:右键【远程】,填写主机名hostname,确定,然后右键hostname创建一个jmx连接,填写上端口号(8080)后,配置即完成。
这个时候右侧出现关于cpu、内存、线程使用情况,运行、休眠、阻塞状态都能看到,点击右上角的dump,可以看到具体的运行信息,代码报错都能定位到。
====================================================================================================================================
关于各种参数指标的图形展示会再详细解释补充。
另外,如果监控的不是tomcat,监控别的应用,比如我这里上传的应用名字是thread-test.jar,可以在Linux下使用命令:#java -Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.210.45 -jar thread-test.jar
将 -Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.210.45这个参数添加进去。改一下hostname和端口号即可。
然后在Windows本地,jvisualvm端对应改一下端口号,就可以连上远程应用进行监控。