JProfile 远程配置
本文最后更新于:3 年前
前言
JProfile 是 Java 常用的性能分析工具,常被用来查看内存占用,CPU 时间消耗等数据。本地配置 JProfile 较为简单,可以参考此 博客。在一些情况下,监控的 Java 服务跑在服务器上,因此不能使用本地的 JProfile 来监控。不过 JProfile 能够支持远程连接监控,只不过需要一些额外的配置。此博客的内容就是介绍如何使用 JProfile 监控远程的 Java 应用。
配置方案一:ssh 免密连接
- 配置与服务器的免密登陆,可参考此 博客。
- 从 官方网站 上根据操作系统下载对应本地和服务器的 JProfile(需要确保两者版本一致)。注意服务端选择下载
Setup Executable
的可执行脚本。 - 客户端安装配置好本地的 JProfile, 然后将服务器的 JProfile 利用 scp 等工具传到服务器上去(也可在上述网页中直接复制链接在服务器上 wget 或者 curl -O 下载)。
- 服务端执行
sh ./jprofiler_linux_11_1_4.sh
来安装 JProfile,无脑同意 OK 和 Enter 就能够让其正确安装并且后台运行起来。 - 服务端启动要监控的应用程序,如 IoTDB。
- 客户端打开 JProfile,点击
Profile a demo session or a saved session
,选择New Session
栏的New Session
手动创建一个远程连接。 - 填好
Session name
,Attach type
选择Attach to remote JVM
,连接方式选择SSH tunnel
,然后点击Edit
开始配置服务器 ip, host, ssh 秘钥等信息。 - 配置完后点击 finish 再点击 ok 即可连接到远程的 JProfile,接着选择对应要监控的 Java 应用程序。
- 配置监控模式,一般选择
Async sampling
,该模式对性能影响最小。 - 配置调用树的过滤器,该参数一般用来指示 jprofile 来记录 cpu view 时的函数耗时统计。加上要统计的包的前缀即可,比如
org.apache.iotdb
。 - 可以开始监控分析了!
- 之后每次远程连接都可以直接到
Open Session
栏选择这次建好的 session 即可,不用再进行配置了。
配置方案二:http 端口连接
- 从 官方网站 上根据操作系统下载对应本地和服务器的 JProfile(需要确保两者版本一致)。注意服务端选择下载
TAR.GZ Archive
的压缩包。 - 客户端安装配置好本地的 JProfile, 然后将服务器的 JProfile 利用 scp 等工具传到服务器上去(也可在上述网页中直接复制链接在服务器上 wget 或者 curl -O 下载)。
- 服务端启动要监控的应用程序,如 IoTDB。
- 服务端执行
tar -zxvf jprofiler_linux_11_1_4.tar.gz
解压压缩包,然后执行jprofiler11.1.4/bin/jpenable -p 10000
手动指定 10000 端口来启动 JProfile。(注,必须有运行的 JVM 才可以启动,并且程序一旦关闭重启服务端的 jprofile 也需要重新启动。) - 客户端打开 JProfile,点击
Profile a demo session or a saved session
,选择New Session
栏的New Session
手动创建一个远程连接。 - 填好
Session name
,Attach type
选择Attach to remote JVM
,连接方式选择Directly connection to
,配置好 host 并指定Profiling port
为服务端手动指定的端口 10000。 - 配置完后点击 ok 即可连接到远程的 JProfile,接着选择对应要监控的 Java 应用程序。
- 配置监控模式,一般选择
Async sampling
,该模式对性能影响最小。 - 配置调用树的过滤器,该参数一般用来指示 jprofile 来记录 cpu view 时的函数耗时统计。加上要统计的包的前缀即可,比如
org.apache.iotdb
。 - 可以开始监控分析了!
- 之后每次远程连接都可以直接到
Open Session
栏选择这次建好的 session 即可,不用再进行配置了。
总结
本博客傻瓜式介绍了使用 JProfile 来对远程服务器上运行的 Java 服务进行监控分析的两种方式。其中 ssh 免密连接方式更方便,其启动时不需要有启动的 JVM 且能够自动检测随后启动的 JVM 让客户端在连接时再挑选。 http 连接方式在监控的 JVM 关闭重启后服务端的 jprofile 也需要手动重启,较为麻烦。因此建议大家都使用第一种连接方式。
JProfile 远程配置
https://tanxinyu.work/jprofile-remote/