JProfiler--性能调优分析工具
一、简介
百度百科上关于JProfiler词条的概要是:JProfiler是一个商业授权的Java剖析工具,由EJ技术有限公司,针对的Java EE和Java SE应用程序开发的。
JProfiler是由 ej-technologies GmbH 公司开发的一款可视化性能分析工具,在性能分析上,比起jvm自带的jstack,jstat,jmap等工具(openJDK不具备以上三款开发工具,需要自己再下载安装一个开发包),JProfiler直觉式的GUI更为直观,能通过图形化数据快速定位问题,省去了大量分析dump下来的内存文件所耗费的时间、精力。
在使用JProfiler前,需要安装服务端和客户端,下面进行测试。
JProfiler下载网站:https://www.ej-technologies.com/download/jprofiler/files
二、安装JProfiler服务端(Linux)
1. 下载服务端
进入网站,选择要下载的版本(各版本区别在上面选项卡选择“NEWS”自行查看,建议下载12版本以下进行玩耍,每个版本都有10天的试用期):
选择对应操作系统、位数的产品进行下载。
实验机的操作系统是CentOS7,64位,这里选择下图的最后一个,压缩版本(免安装):
2. 安装
将下载的文件拖进服务器,根据下载的文件不同,安装方式也不同:
(1)下载第一个 Setup Executable 可执行安装的朋友,在 /opt 目录下,新建 /JProfiler12(命名建议文件名+版本)文件夹,再把下载下来的sh文件拖到文件夹中,直接用sh命令执行下该文件即可(默认安装执行目录下)
(2)下载第二个 RPM 文件的朋友,按照(1)建目录,文件拖进来后使用命令 rpm -ivh filename.rpm 执行安装即可
(3)下载第三个压缩文件的朋友,直接拖动到 /opt 文件夹下,tar命令解压缩即可(tar -zxvf filename.tar.gz -C .),测试下载的是压缩版:
3. 配置
对tomcat启动监控分析,需要先在配置文件中添加参数。
(1)网上大多数的配置教程都配置了环境变量(/etc/profile)和catalina.sh、startup.sh文件(亲测可行):
(2)只在tomcat的jvm启动参数中添加一个代理路径(agentpath)参数也可以正常使用,其中port=后面的端口号可以根据需要进行更改(JAVA_OPTS="$JAVA_OPTS -agentpath:/opt/jprofiler12.0.3/bin/linux-x64/libjprofilerti.so=port=8849")
三、安装JProfiler客户端(windows)
下载跟服务端一样版本的安装包
下载可执行安装文件(双击,按提示安装)或者免安装压缩文件(直接解压)。
四、intellij idea配置JProfiler
直接在Plugins > Marketplace下载JProfiler插件,安装成功后idea会出现下面按钮,点击他启动:
初次启动需要指定客户端路径:
五、JProfiler的简单使用
(只涉及对服务器进行监控分析的使用)
1. 启动服务端
提要:我配置的tomcat服务启动端口为200,JProfiler监听端口设置了8849(默认)
根据 二3(2)进行配置之后,启动需要分析的tomcat服务器
(1)通过lsof命令可以发现tomcat服务没有直接启动
(2)查看打印的日志可以发现,tomcat开启了8849端口监听,等待来自JProfiler GUI(JProfiler客户端)的指令
2. 启动客户端
(1)新建Remote Integration
选择远程服务器类型
根据服务器jvm环境进行配置
根据需要选择一种运行模式(常用第一种)
设置服务器IP
配置服务端JProfiler的安装目录
服务端监听端口
配置完成
服务已启动:
(2)选择一种启动模式
(3)简单使用
参考博客《性能监控(二)-Jprofiler内存分析》
(4)支持快速定位问题方法
通过对代码问题导致内存冲高的测试用例的测试,调用问题api时,可以明显看到大量Double对象(循环中的Double.valueof()导致)
查看调用树,可以快速定位出问题的方法以及调用的函数(仅Instrumentation模式下可以使用该功能):
* 神秘机器
GITHUB地址:https://github.com/BadGuy-Darren/MysteryMachine.git