近期公司进行了相关项目的性能测试,经过大半个月的折腾,总算学习了不少相关经验,在此记录分享一番
1. 主要工具
1.1 jvisualvm
JDK自带的图形化工具,总体来说在性能监控方面要比JConsole好一些,原理都是类似,需要通过JMX等进行JVM分析, 为此如需远端访问,则需要在目标JAVA程序启动时添加如下参数:
-Djava.rmi.server.hostname=[本机IP]
-Dcom.sun.management.jmxremote.port=[监控端口]
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
其它的配置就不在此赘述,相信大家都很容易连上待监测的目标程序,具体界面如下所示:
1.2 jstack
JDK自带工具,用于导出线程信息(也可通过jvisualvm图形化方式导出),具体命令如下:
jstack -l [进程ID]
1.3 jmap
JDK自带工具,用于导出JVM堆内存信息(也可通过jvisualvm图形化方式导出),具体命令如下:&n