本文涉及:JVM性能调优内存分析神器VisualVM的介绍与使用
基本概念
JVM本身为我们提供了很多性能监控的工具,其中有基于命令行的也有基于图形用户界面的,而个人感觉VisualVM就是其中最优秀的一个工具。
使用VisualVM我们可以做这些事:
当然,这么牛逼其实是有原因的,VisualVM其实本身是基于这些工具的:jstat、JConsole、jstack、 jmap、 jinfo
本地使用
使用VisualVM无需单独下载安装,它就在JDK的bin目录里,双击jvisualvm.exe就可以打开。
打开之后就可以看到在左侧本地标签页下有当前本机启动的一些Java程序,选中其中一个程序后右侧概述标签页会显示当前程序的一些基本的信息
接下来监视标签页可以观看当前程序的CPU、内存、类的加载情况以及线程的相关信息。在此标签页还可以选择执行垃圾回收以及dump堆
接下来线程标签页可以查看线程的详细信息以及dump线程
然后是抽样器,可以进行CPU和内存的性能数据的收集
使用VisualVM监控服务器上的Java程序
想要监控服务器上的Java程序就需要在启动时增加一下启动参数了
java -Djava.rmi.server.hostname=你的服务器ip-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=监控端口,不是程序端口-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false -jar demo-0.0.1-SNAPSHOT.jar
紧接着就可以在左侧远程标签上右键选择添加远程主机,主机名填写远程ip,接着右键刚添加的主机选择添加JMX连接,输入远程端口就可以进入远程服务器上程序的监控页面。具体内容和本地相似这里就不再陈述
其他
接下来左侧还包含两个功能,解析dump文件和快照文件。再有一个比较神奇的地方就是它的插件功能,点击上方工具选择插件-可用插件会有一些非常神奇的插件等你去探索