Java性能分析神器-JProfiler 远程调试Tomcat

2016-12-29 14:45

之前已经介绍过如何调试本地的JBoss。现在额外一篇文章关于如何远程调试Tomcat的,其实远程和本地的区别不大,主要区别只是,JProfiler的GUI运行在你本地,而JProfiler的Agent运行在远程服务端。本地和远端都需要安装Jprofiler的运行环境,帖子里面,本地是Windows,服务器端是Linux。废话不多说,直接上干货

环境:

1、jdk > 1.6

2、jprofiler 9.0.3

3、Tomcat 7


远程Linux 服务器配置

解压:
tar -zxvf jprofiler_linux_9_0_3.tar.gz

拷贝:
cd jprofiler9/bin/
cp jprofiler /usr/local/

配置环境变量:
修改/etc/profile系统配置文件:
JPROFILER_HOME=/opt/shanhy/jprofiler9/bin/linux-x64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JPROFILER_HOME
使配置文件生效:source /etc/profile

本地windows自己安装。

生成脚本

在本机生成startup_jprofiler.sh脚本,步骤如下:

Java性能分析神器-JProfiler 远程调试Tomcat0

Java性能分析神器-JProfiler 远程调试Tomcat1

Java性能分析神器-JProfiler 远程调试Tomcat2

Java性能分析神器-JProfiler 远程调试Tomcat3

Java性能分析神器-JProfiler 远程调试Tomcat4

Java性能分析神器-JProfiler 远程调试Tomcat5

Java性能分析神器-JProfiler 远程调试Tomcat6

Java性能分析神器-JProfiler 远程调试Tomcat7

Java性能分析神器-JProfiler 远程调试Tomcat8


至此,startup_jprofiler.sh 已经生成,生成位置与我们选择的 startup.sh 在同一个目录。

我们把 startup_jprofiler.sh 上传到远程Linux服务器的Tomcat/bin目录下。

与往常启动Tomcat不同的是,我们不使用 startup.sh 而是直接使用 startup_jprofiler.sh 启动Tomcat。

这里需要说一下的是,默认startup_jprofiler.sh 最后启动Tomcat 方式为 run,我们需要修改一下,修改为 start,下面我们对比一下startup.sh 和 startup_jprofiler.sh 的不同:

Java性能分析神器-JProfiler 远程调试Tomcat9


其实差别也就是增加了2行配置,推荐大家直接在服务器上复制startup.sh 为 startup_jprofiler.sh,然后添加如下两行即可:

CATALINA_OPTS="-agentpath:/opt/jprofiler9/bin/linux-x64/libjprofilerti.so=port=8849,nowait $CATALINA_OPTS"
export CATALINA_OPTS


如果是用工具生成的startup_jprofiler.sh,注意我们要把生的startup_jprofiler.sh的最后一行的 run 修改为 start 后,再启动Tomcat,启动如图所示:

Java性能分析神器-JProfiler 远程调试Tomcat10


最后,启动jProfiler 监控

Java性能分析神器-JProfiler 远程调试Tomcat11

Java性能分析神器-JProfiler 远程调试Tomcat12


点击OK 后,我们就可以查看服务器Tomcat的各种情况了。