1、安装
window客户端和linux版本必须相同,推荐都是用9.1.1,如下:
下载地址: https://pan.baidu.com/s/1OpFNiHDIJ4ZgiK2b14moNg
提取码: g4fp
linux上传到某个目录,解压即可
windows直接双击exe,下一步下一步即可
序列号:
L-Larry_Lau@163.com#36573-fdkscp15axjj6#25257
L-Larry_Lau@163.com#5481-ucjn4a16rvd98#6038
L-Larry_Lau@163.com#99016-hli5ay1ylizjj#27215
L-Larry_Lau@163.com#40775-3wle0g1uin5c1#0674
L-Larry_Lau@163.com#7009-14frku31ynzpfr#20176
L-Larry_Lau@163.com#49604-1jfe58we9gyb6#5814
L-Larry_Lau@163.com#25531-1qcev4yintqkj#23927
L-Larry_Lau@163.com#96496-1qsu1lb1jz7g8w#23479
L-Larry_Lau@163.com#20948-11amlvg181cw0p#171159
2、连接使用
连接待分析的java进程
linux启动:
到jprofiler的bin目录下,启动jpenable
./jpenable
选择待分析的java进程,
选择GUI模式
输入可以远程访问的端口号
注意事项
如果为docker容器,需要开放端口
如:映射容器的8888端口到宿主机,windows客户端连接宿主机的端口
3、性能分析
3.1 sql分析
进入databases-jdbc界面,开启record
记录 sql、单次时间、执行次数等数据
通过该页面我们可以看到压测过程中sql的执行情况
可以定位到如下问题:
- sql是否耗时过长 – 考虑是否需要添加或优化索引
- 是否存在重复sql – 优化代码,减少数据库操作
- 某些sql每次都查询数据 – 考虑加入缓存机制
3.2 内存泄漏
查看每次GC后,已用内存的大小,如果越来越大就可以怀疑有对象没有释放,我们可以在memory模块分析哪些对象数量越来越多
3.3 方法耗时
进入CPU界面,一层一层点开,找到最后一层耗时较长的方法
该步骤可以找开发一起,毕竟他写的代码他比较熟
例如:
支付压测过程中发现fromxml、toxml方法耗时较长,占用cpu时间30%以上
调优:修改微信支付SDK,引入xstream缓存,CPU耗时降到5%以下