http://www.ej-technologies.com/download/jprofiler/version3.php
网上很多关于JProfiler的介绍都是被监控的应用程序(或web应用)和Jprofiler装在同一台机器上的情况。如果一定要这样,感觉意义就不大了,因为想要监控的往往就是远程的linux服务器的web应用,而监控结果当然希望在本地windows pc上以图形界面的方式看到。在本地windows上装了jprofiler3和破解后,发现确实有remote session的选项。于是开始干活:
第一步,除了下载windows版的jprofiler3并在本地安装外,在下载一个linux版。Linux版包括rpm安装版,.sh安装版和.tar.gz压缩版,我下的是.sh版,用./jprofiler3.sh –q安装后,在linux上,jprofile被安装在了/var/jprofiler3路径下(我没改任何配置文件直接执行的安装就是这个结果,目的只是使用它所以不想花时间研究)。
第二步,本地运行图形界面的jprofiler,在菜单中选择Session->Integration Wizard->New Remote Integration,如图:
然后选择“on a remote computer”,系统选Linux X86,如图:
后面几部就不帖图了,就是傻瓜操作,问啥填啥,直到看到这一步:
这个里面的提示是根据你填的东西不同而生成的个性信息,copy下来,待会要用到,然后下一步,选“No, I will start the session later.”。
第三步,就要在linux服务器上进行配置了,这就需要刚才生成的个性配置信息。其中 –Xint –Xrunjprofiler:port=8849 –Xbootclasspath/a:/opt/jprofiler3/bin/agent.jar是附加的启动java程序时跟在”java”后面的命令行参数,由于我用的是tomcat,那就在tomcat的启动脚本startup.sh中的JAVA_OPTS参数中添加入这一行东西。(其实还会遇到很多细节问题导致的失败,这都是后话了,比如这些命令行参数和原先的参数可能冲突,我开始做了好多次都失败,JVM都出了bug报告,开始不知道怎么回事,耽误了很多时间,其实就是参数冲突)。还有一个个性配置信息就是要有一个叫LD_LIBRARY_PATH的环境变量,那我就修改了catalina.sh,在里面加入export LD_LIBRARY_PATH=/opt/jprofiler3/bin/linux-x86。
第四步,这时候就用修改过的startup.sh启动tomcat,可以在catalina.out日志中看到提示我们远程监控程序可以连接了。
第五步,我们在本地windows pc中运行的jprofiler的菜单中选择“Session -> Open Session”,选择刚才建立的remote session,然后狂点好几个OK就行了。
如果没有问题,监控程序就运行成功了!我们就可以看到好多可爱的监控结果,比如内存堆栈的分配和使用情况、对象建立的多少情况、cpu使用的情况,还可以针对每个类或每个对象或每个线程、或每个函数对内存、cpu的使用情况,还可以看java虚拟机中自动垃圾收集的运行情况,这一切都是可爱的图形界面!还可以生成静态报告,告诉你各种线程、类、对象的调用关系、运行堆栈和每个具体单元占用的资源和时间等等,功能还是非常super的,而且好多东西还没搞懂呢,反正给我的感觉就是它能告你的东西比你想知道的还要多好多,毛主席教育我们,jprofiler是个好东东。