searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

使用JProfiler分析JVM程序的集成步骤

2024-04-30 07:32:48
29
0

前言

首先看官网介绍:

    JProfiler is an award-winning all-in-one Java profiler. JProfiler's intuitive UI helps you find performance bottlenecks, pin down memory leaks and resolve threading issues.

翻译过来就是:

    JProfiler是一个屡获殊荣的多功能Java分析器。JProfiler直观的UI可以帮助您找到性能瓶颈,确定内存泄漏并解决线程问题。

更多的信息可到官网查看,本文只介绍在特定情况下如何接入JProfiler进行程序分析。

官网:  不允许有网址,自行搜索吧

首次试用期过后,可续可尝试申请试用期使用:不允许有网址,自行搜索吧

一、安装

下载地址:不允许有网址,自行搜索吧

选择自己的平台类型下载,按提示安装就好。

二、使用方式

以下是本人在不同情形下的使用方式,仅作参考,具体使用最好还是查阅官网。

1、本地JVM分析

如果是分析本地运行的java程序,直接打开JProfiler,如下选择“Attach 到一个正在运行的JVM”。

这时会列出本地运行的所有的JVM,选择连接到要分析的JVM上。

之后选择采用方式,按需选择,一般分析选择第三项就可以了,对原程序的性能影响较低。

然后就可以进行分析了。

2、集成到IntelliJ IDEA插件

如果你使用的开发工具是IntelliJ IDEA,可在idea的【文件/设置/插件】中搜索“JProfiler”,进行插件安装,当然前提是本地已经安装了JProfiler。

安装后可以直接在idea内使用profile图标(一般在右上方)启动项目进行分析,之后步骤与第1节同。

3、分析远程服务器上正在运行中的JVM

可以参考下面的链接(感谢前辈们的经验传授),本人按步骤验证过,可在不重启JVM的情况下进行分析,不过分析完之后要剥离嵌入的agent需要重启程序,当然不剥离也行,只有稍微的性能损耗。

不允许有网址,自行搜索吧

4、java启动参数中加入agent的方式

以公司内部翼集平台为背景:

(1)在翼集编辑流水线,构建镜像的环节中,自定义文件处上传agent代理,下图红框1:

JProfier的agent代理在连接向导中会有有下载链接,也可在此处下载(注意版本一致):

不允许有网址,自行搜索吧

(2)dockerfiler里面增加java启动参数设置

上图红框2和红框3,摘要如下:

FROM xx.xxx.xx.xx:xxxx/library/jdk-17.0.9:v17

ADD jprofiler_agent_linux-x86_14_0_2.tar.gz /usr/local/

EXPOSE 8849

ADD xxxxxxxxx.jar /usr/local/

EXPOSE 8080

CMD ["java", "-agentpath:/usr/local/jprofiler14/bin/linux-x64/libjprofilerti.so=port=8849,nowait","-Dspring.profiles.active=dev", "-XX:+PrintGCDetails" ,"-jar", "-Xms500m", "-Xmx3550m" ,"/usr/local/xxxxxxxx.jar"]

(3)在执行发布的时候对8849端口做映射

映射端口到容器外部可访问端口。

(4)之后就可以在本地启动JProfiler,在第二步选择中,选择 【新会话/新远程集成】,按向导设置即可连接到远程jvm。

可能需要填写的一些信息:端口和上述映射的一致;远程代理程序安装位置: /usr/local/jprofiler14

几个示意图:

这里提供了agent的下载地址。

之后就可以使用里面的分析能力,功能很多,需要自己去慢慢摸索了。

5、使用JProfiler分析k8s上的java程序

附上一个链接,没实际操作过,仅作引导,需自行探索。

不允许有网址,自行搜索吧

 

0条评论
0 / 1000
c****c
1文章数
0粉丝数
c****c
1 文章 | 0 粉丝
c****c
1文章数
0粉丝数
c****c
1 文章 | 0 粉丝
原创

使用JProfiler分析JVM程序的集成步骤

2024-04-30 07:32:48
29
0

前言

首先看官网介绍:

    JProfiler is an award-winning all-in-one Java profiler. JProfiler's intuitive UI helps you find performance bottlenecks, pin down memory leaks and resolve threading issues.

翻译过来就是:

    JProfiler是一个屡获殊荣的多功能Java分析器。JProfiler直观的UI可以帮助您找到性能瓶颈,确定内存泄漏并解决线程问题。

更多的信息可到官网查看,本文只介绍在特定情况下如何接入JProfiler进行程序分析。

官网:  不允许有网址,自行搜索吧

首次试用期过后,可续可尝试申请试用期使用:不允许有网址,自行搜索吧

一、安装

下载地址:不允许有网址,自行搜索吧

选择自己的平台类型下载,按提示安装就好。

二、使用方式

以下是本人在不同情形下的使用方式,仅作参考,具体使用最好还是查阅官网。

1、本地JVM分析

如果是分析本地运行的java程序,直接打开JProfiler,如下选择“Attach 到一个正在运行的JVM”。

这时会列出本地运行的所有的JVM,选择连接到要分析的JVM上。

之后选择采用方式,按需选择,一般分析选择第三项就可以了,对原程序的性能影响较低。

然后就可以进行分析了。

2、集成到IntelliJ IDEA插件

如果你使用的开发工具是IntelliJ IDEA,可在idea的【文件/设置/插件】中搜索“JProfiler”,进行插件安装,当然前提是本地已经安装了JProfiler。

安装后可以直接在idea内使用profile图标(一般在右上方)启动项目进行分析,之后步骤与第1节同。

3、分析远程服务器上正在运行中的JVM

可以参考下面的链接(感谢前辈们的经验传授),本人按步骤验证过,可在不重启JVM的情况下进行分析,不过分析完之后要剥离嵌入的agent需要重启程序,当然不剥离也行,只有稍微的性能损耗。

不允许有网址,自行搜索吧

4、java启动参数中加入agent的方式

以公司内部翼集平台为背景:

(1)在翼集编辑流水线,构建镜像的环节中,自定义文件处上传agent代理,下图红框1:

JProfier的agent代理在连接向导中会有有下载链接,也可在此处下载(注意版本一致):

不允许有网址,自行搜索吧

(2)dockerfiler里面增加java启动参数设置

上图红框2和红框3,摘要如下:

FROM xx.xxx.xx.xx:xxxx/library/jdk-17.0.9:v17

ADD jprofiler_agent_linux-x86_14_0_2.tar.gz /usr/local/

EXPOSE 8849

ADD xxxxxxxxx.jar /usr/local/

EXPOSE 8080

CMD ["java", "-agentpath:/usr/local/jprofiler14/bin/linux-x64/libjprofilerti.so=port=8849,nowait","-Dspring.profiles.active=dev", "-XX:+PrintGCDetails" ,"-jar", "-Xms500m", "-Xmx3550m" ,"/usr/local/xxxxxxxx.jar"]

(3)在执行发布的时候对8849端口做映射

映射端口到容器外部可访问端口。

(4)之后就可以在本地启动JProfiler,在第二步选择中,选择 【新会话/新远程集成】,按向导设置即可连接到远程jvm。

可能需要填写的一些信息:端口和上述映射的一致;远程代理程序安装位置: /usr/local/jprofiler14

几个示意图:

这里提供了agent的下载地址。

之后就可以使用里面的分析能力,功能很多,需要自己去慢慢摸索了。

5、使用JProfiler分析k8s上的java程序

附上一个链接,没实际操作过,仅作引导,需自行探索。

不允许有网址,自行搜索吧

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0