jprofiler8第三方监控工具使用报告.docx
《jprofiler8第三方监控工具使用报告.docx》由会员分享,可在线阅读,更多相关《jprofiler8第三方监控工具使用报告.docx(26页珍藏版)》请在冰豆网上搜索。
![jprofiler8第三方监控工具使用报告.docx](https://file1.bdocx.com/fileroot1/2023-1/22/84dfade8-3f8d-4238-bed1-acb9c0bd9319/84dfade8-3f8d-4238-bed1-acb9c0bd93191.gif)
jprofiler8第三方监控工具使用报告
JProfiler安装部署说明
JProfiler是一个全功能的Java剖析工具(profiler),专用于分析J2SE和J2EE应用程序。
它把CPU、执行绪和内存的剖析组合在一个强大的应用中。
JProfiler可提供许多IDE整合和应用服务器整合用途。
JProfiler直觉式的GUI让你可以找到效能瓶颈、抓出内存漏失(memoryleaks)、并解决执行绪的问题。
它让你得以对heapwalker作资源回收器的rootanalysis,可以轻易找出内存漏失;heap快照(snapshot)模式让未被参照(reference)的对象、稍微被参照的对象、或在终结(finalization)队列的对象都会被移除;整合精灵以便剖析浏览器的Java外挂功能,JProfiler功能很强大,可以监控普通的javaapplication,applet,javawebstart,applicationserver等。
除了可以监控本地的程序,还可以对远程服务器上跑的应用进行监控。
目前JProfiler最新版本是8.0,由于JProfiler需要注册码,网上找到的资源,这次就使用这个版本进行说明。
一、安装
安装说明
在监控端安装windows版的jprofiler8,在服务器端安装windows版的jprofiler8。
windows下安装:
点击exe文件进行安装,安装后使用文件中的注册码进行注册
1.1本地监控方法
配置对javaapplication的监控
下面以JProfiler监控远程应用程序为例,来说明对本地监控或远程应用程序监控的配置方法:
一、首先启动JProfiler,出现quickstart对话框如下图:
二、选择环境服务,我这里本地使用的是tomcat,注意tomcat有两种启动文件,一种是.bat的一种是.exe的我这里是exe文件
三、:
选择是监控本机还是远程监控,这里是选择本地监控
四、配置jdk版本:
JVMVendor为jdk的公司,jprofiler8以后因没有sun公司,改为oracle公司,这点要注意
Version:
为JDK版本,这里应该为1.6.0
Moede:
默认不变hotspot
五、Waitfor…… 为了在开发环境中获取监控的信息,它将等待远程计算机上的JprofileGUI启动,并和本机建立连接,这种方式比较便于修改jprofiler的配置信息。
Don'twaitfor……不必等待远程计算机的JprofileGUI先启动和建立连接,立即启动。
但在启动远程应用程序前必须校验当前所配置会话的配置文件。
虚拟机参数将参考Jprofile的config文件的路径。
一般选择选择Waitfor。
六、选择启动文件路径
六、默认监控端口8849,如下图:
七、启动后画面,内存实例数与监控界面
1.2远程监控方法
配置对applicationserver的远程监控
下面以JProfiler+Jboss为例,来说明JProfiler对远程applicationserver监控的配置方法:
打开JProfiler显示QuickStart对话框:
1、选择Anapplicationserver,locallyorremotely,如下图:
2、选择服务器
点击Next进入“服务器选择”对话框,选择JBoss4.x,如下图
3、选择监控目标:
本地或远程,本次选择远程,如下图:
4、选择jdk环境
5、填写监控服务器ip地址,如下图:
6、填写监控服务器中jprofiler的安装目录,如下图:
6、选择启动脚本
点击Next进入“启动脚本选择”对话框,输入JBoss启动脚本(run.bat)的路径,远程的可以将jboss启动脚本(run.bat)下载到本地,然后选择。
如下图:
8、输入JProfiler的端口号
点击Next进入“JProfiler端口输入”对话框,保持默认不变,如下图:
9、选择JBoss是否在连接到JProfiler后再启动JBoss
点击Next进入选择页面
JBoss是否在连接到JProfiler后再启动,需要先启动远程服务器的监控bat
我这里是自己定义的run_jp.bat,确认配置
这里要注意几个地方:
注意远程的bat脚本里面要加如下代码
“-agentpath:
D:
\jprofiler8\bin\windows\jprofilerti.dll=port=8849”
加的位置如下:
JAVA_OPTS=%JAVA_OPTS%-Xms384m-Xmx1024m-XX:
MaxNewSize=384m-XX:
MaxPermSize=384m-agentpath:
D:
\jprofiler8\bin\windows\jprofilerti.dll=port=8849
我这里把以前的run.bat备份后改名为run_jq.bat并在run_jq.bat做了上述的修改,这样原来的run.bat还可以作为正常启动的文件,run_jq.bat作为专门监控用的启动文件
run_jq.bat启动后出现如下界面为正确,既等待远程的链接
不等待JProfiler连接,直接启动
这里选择2,只在需要监控时才连接,对jboss运行不产生影响,如下图:
1.3快速启动
启动成功后,以后启动就不用再这么多配置了,点击左上角的Startcenter
弹出界面,里面已经记录好了历次的启动配置
二、主要功能简介
1.内存剖析Memoryprofiler
JProfiler的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。
所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。
所有对象
显示类或在状况统计和尺码信息堆上所有对象的包。
你可以标记当前值并显示差异值。
记录对象Recordobjects
显示类或所有已记录对象的包。
你可以标记出当前值并且显示差异值。
分配访问树Allocationcalltree
显示一棵请求树或者方法、类、包或对已选择类有带注释的分配信息的J2EE组件。
分配热点Allocationhotspots
显示一个列表,包括方法、类、包或分配已选类的J2EE组件。
你可以标注当前值并且显示差异值。
对于每个热点都可以显示它的跟踪记录树。
可以进行筛选只监控项目路径下包和类文件,如下图
也可以根据选择,用包路径作为监控,如下图:
查看哪些类被发生了变化:
红色的变成是发生变化的对象及其数量。
2.堆遍历Heapwalker
在JProfiler的堆遍历器(Heapwalker)中,你可以对堆的状况进行快照并且可以通过选择步骤下寻找感兴趣的对象。
堆遍历器有五个视图:
类Classes
显示所有类和它们的实例。
分配Allocations
为所有记录对象显示分配树和分配热点。
索引References
为单个对象和“显示到垃圾回收根目录的路径”提供索引图的显示功能。
还能提供合并输入视图和输出视图的功能。
数据Data
为单个对象显示实例和类数据。
时间Time
显示一个对已记录对象的解决时间的柱状图。
3.CPU剖析CPUprofiler
JProfiler提供不同的方法来记录访问树以优化性能和细节。
线程或者线程组以及线程状况可以被所有的视图选择。
所有的视图都可以聚集到方法、类、包或J2EE组件等不同层上。
CPU视图部分包括:
访问树Calltree
显示一个积累的自顶向下的树,树中包含所有在JVM中已记录的访问队列。
JDBC,JMS和JNDI服务请求都被注释在请求树中。
请求树可以根据Servlet和JSP对URL的不同需要进行拆分。
热点Hotspots
显示消耗时间最多的方法的列表。
对每个热点都能够显示回溯树。
该热点可以按照方法请求,JDBC,JMS和JNDI服务请求以及按照URL请求来进行计算。
访问图Callgraph
显示一个从已选方法、类、包或J2EE组件开始的访问队列的图。
4.线程剖析Threadprofiler
对线程剖析:
线程历史Threadhistory
显示一个与线程活动和线程状态在一起的活动时间表。
线程监控Threadmonitor
显示一个列表,包括所有的活动线程以及它们目前的活动状况。
死锁探测图表DeadlockDetection
显示一个包含了所有在JVM里的死锁图表。
目前使用的监测器Currentmonitoruseage
显示目前使用的监测器并且包括它们的关联线程。
历史检测记录Historyusagehistory
显示重大的等待事件和阻塞事件的历史记录。
监测使用状态Monitorusagestatistics
显示分组监测,线程和监测类的统计监测数据。
5.VM遥感勘测技术VMtelemetry
观察JVM的内部状态,JProfiler提供了不同的遥感勘测视图,如下所示:
堆Heap
显示一个堆的使用状况和堆尺寸大小活动时间表。
记录的对象Recordedobjects
显示一张关于活动对象与数组的图表的活动时间表。
垃圾回收Garbagecollector
显示一张关于垃圾回收活动的活动时间表。
类Classes
显示一个与已装载类的图表的活动时间表。
线程Threads
显示一个与动态线程图表的活动时间表。
CPU监控
六、数据库监测
Hql语句监控,并能转换真正的sql语句,并显示语句执行时间
结束语:
Jprofiler是非常强大的一款java性能监控软件,这里只介绍了他的一些基本功能,更多功能需要大家探索补充。
缺点:
非常的耗费资源,启动后会严重影响系统的运行速度,如果要进行压力测试时,请慎用监控。
而远程监控必须要在服务器上和客户端安装同样版本的程序,客户端与服务器端都要耗费资源