性能测试之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文件,说明该文件内部程序引起了内存溢出问题