性能测试之JProfiler9.2

一,下载Jprofiler安装包,解压

  jprofiler_linux_9_2.sh

  jprofiler_windows-x64_9_2.exe

二,安装jprofile服务端

  1,把jprofiler_linux_9_2.sh 上传到服务器/usr/local/jprofiler路径下

  2,赋权限chmod 777 jprofiler_linux_9_2.sh再执行 sh jprofiler_linux_9_2.sh(根据提示一路回车)

  3,默认安装在/opt/jprofiler7目录下

三,先安装windowns客户端

  安装完后破解:

  

  接着下一步就安装完成了,打开出现这页面

  

 四,linux和windowns都安装完成以后,就可以配置tomcat了

  1,在tomcat的的bin目录下有个catalina.sh文件,打开添加如下配置

  JAVA_OPTS="-Xms128m -Xmx512m -Xss256k -XX:PermSize=64m -XX:MaxPermSize=256m -agentpath:/opt/jprofiler9/bin/linux-x64/libjprofilerti.so=port=8849 -Xbootclasspath/a:/opt/jprofiler9/bin/agent.jar -d64"

  2,重启启动tomcat

  

  3,开始建立连接:第一步

  

  第二步:

  

 第三步:

  

  第四步:

  

  第五步:

  

   第六步:

  

  第七步:

  

   第八步:

  

   第九步:

  

  第十步:

  

   第十一步:

  

   连接成功,后台程序就继续启动了

  

  

 五,我们来对一个有内存溢出的程序进行监控

  我们这里主要看Live memory和CPU views

  我们首先来看Live memory

  

   在这里我们看到的是当前tomcat的对象使用情况,图中颜色的线条表示当前对象被引用的次数和大小

  "Mark Current"---来将当前内存使用情况作为参照;点击后会显示“Difference”列,该列会列出对象数量的变化和变化比率

  

   接着我们操作应用程序看一下内存的增长情况

  

     我们可以看到该对象内存增长的幅度,达到了31%

    接着我们可以执行一下GC,看内存是否被释放一部分出来

    

     我们发现该对象占用的内存并未释放,可以确定有内存溢出,那么接下来我们具体定位一下

    我们选中这一条数据进行如下操作:右键选中第一条或者点击上面的show in heap walker都可以

    

     出现下图,我们来进行如此操作:

    

     

    会出现该对象的类,我们通过点击+号就可以追踪到引用该类对象的程序和文件,如图:

     

      上图中出现黄色的表示该引用消耗了内存,直接定位到index_jsp文件,说明该文件内部程序引起了内存溢出问题  

原文地址:https://www.cnblogs.com/hally/p/12814087.html