jprofiler监控工具使用说明
JProfiler安装部署说明
JProfiler是一个全功能的Java剖析工具(profiler),专用于分析J2SE和J2EE应用程序。它把CPU、执行绪和内存的剖析组合在一个强大的应用中。JProfiler可提供许多IDE整合和应用服务器整合用途。
JProfiler直觉式的GUI让你可以找到效能瓶颈、抓出内存漏失(memory leaks)、并解决执行绪的问题。它让你得以对heap walker作资源回收器的root analysis,可以轻易找出内存漏失;heap快照(snapshot)模式让未被参照(reference)的对象、稍微被参照的对象、或在终结(finalization)队列的对象都会被移除;整合精灵以便剖析浏览器的Java外挂功能,JProfiler功能很强大,可以监控普通的java application, applet, java web start, application server 等。除了可以监控本地的程序,还可以对远程服务器上跑的应用进行监控。
目前JProfiler最新版本是6.0,由于JProfiler需要注册码,网上找到的资源中windows、linux都破解的只有4.3.2版本,这次就使用这个版本进行说明。
最新版下载连接http://www.ej-technologies.com/download/jprofiler/files.php。
一、安装说明
在监控端安装windows版的jprofiler4,在服务器端安装linux版的jprofiler4。
windows下安装:点击exe文件进行安装,安装后使用文件中的注册码进行注册
linux下服务端安装:直接解压即可
二、配置对java application的监控
下面以JProfiler监控远程应用程序为例,来说明对远程应用程序监控的配置方法:
一、首先启动JProfiler,出现quick start对话框,选择An application on a remote computer,next,如下图:
二、有2个选项,on this computer和on a remote computer,这里是选择被监控的程序的位置,这里选择on a remote computer,同时选择远程机器的类型是
windows还是linux等,如下图:
三、填写远程机器地址,这里是192.168.9.53,如下图:
四、填写远程机器JProfiler的安装地址,我这里是/home/sps/jprofiler4,如下图:
五、选择远程机器的java运行环境,这里是sun\\1.5.0\\hotspot,如下图:
六、默认监控端口8849,如下图:
七、Wait for ……为了在开发环境中获取监控的信息,它将等待远程计算机上的Jprofile GUI 启动,并和本机建立连接,这种方式比较便于修改jprofiler的配置信息。
Don't wait for …… 不必等待远程计算机的Jprofile GUI 先启动和建立连接,立即启动。但
在启动远程应用程序前必须校验当前所配置会话的配置文件。虚拟机参数将参考Jprofile 的config 文件的路径。
选择Don't wait,立刻启动。
八、选择远程机器读取配置文件的位置,这里是/home/sps/jprofiler4/config,同时手工维护配置文件的改动,选择manual同步。
同步方式:
Manual synchronization;copy to diretory;execute command:
提供三种同步方式,这里选择的是第一个手工同步,如下图:
九、这里要注意,重点在这里,如果不看清楚这个说明信息,会导致配置失败,需要将里面的信息拷贝出来。
Integration type: [Generic application]
Selected JVM: Sun 1.5.0 (hotspot)
Startup mode: Don't wait for JProfiler GUI, startup immediately
Important: The local config file C:\\Documents and
Settings\\Administrator\\.jprofiler4\\config.xml must be copied manually to
/home/sps/jprofiler4/config on the remote computer when the profiling
settings are changed.
(1) Please insert
-agentlib:jprofilerti=port=8849,nowait,id=133,config=/home/sps/jprofiler4/config/config .xml -Xbootclasspath/a:/home/sps/jprofiler4/bin/agent.jar
into the start command of your remote application right after the java command.
(2) Please add
/home/sps/jprofiler4/bin/linux-x86
to the environment variable LD_LIBRARY_PATH.
A remote session named Remote application on 192.168.9.53 will be created that connects to a running instance of the remote application that is started with the modified start command.
解释一下:
1、将配置文件config.xml 从本机C:/Documents and
Settings/Administrator/.jprofiler4/拷贝
到远程服务器192.168.9.53上的/home/sps/jprofiler4/config/目录下;
2、在java启动脚本中增加下面信息
-agentlib:jprofilerti=port=8849,nowait,id=133,config=/home/sps/jprofiler4/config/config .xml -Xbootclasspath/a:/home/sps/jprofiler4/bin/agent.jar,
注:在启动脚本中,增加上面信息后,会嵌套启动jprofiler4进程,对性能会有一定的影响,但具体影响程度暂无法评估,所以在不需要监控时,建议对这些脚本进行注释。
如:
Linux下:
$JAVACMD
-Did=vgopTool \\
-cp ${CLASSPATH} \\
-DCONFIG_FILE=${MY_HOME}/cfg/config.properties \\
-agentlib:jprofilerti=port=8849,nowait,id=130,config=/home/sps/jprofiler4/config/config
.xml
-Xbootclasspath/a:/home/sps/jprofiler4/bin/agent.jar
com.mgj.main.Main
Windows下:
java -classpath ../lib/dom4j-1.6.1.jar;
\"-agentlib:jprofilerti=port=8849,nowait,id=131,config=C:\\Documents and
Settings\\Administrator\\.jprofiler4\\config.xml\" \"-Xbootclasspath/a:C:\\Program
Files\\jprofiler4\\bin\\agent.jar\" com/mgj/main/Main
3、/home/sps/jprofiler4/bin/linux-x86加入到环境变量中,变量名称为:LD_LIBRARY_PATH
十、选择yes,finish。
这个远程监控的session就建好了,可以马上连接进行监控了,上面配置中还有些其他的选择,可以根据情况进行不同的配置。
注意:拷贝config.xml 到远程时,必须完成第10步。在第9步的时候config.xml 未完成,此时拷贝,会出现 session 找不到的错误。
三、配置对application server的监控
下面以JProfiler+Jboss为例,来说明JProfiler对远程application server监控的配置方法:打开JProfiler显示QuickStart对话框:
1、选择An application server,locally or remotely,如下图:
2、选择服务器
点击Next进入“服务器选择”对话框,选择JBoss 4.x,如下图
3、选择监控目标:本地或远程,本次选择远程,如下图:
4、填写监控服务器ip地址,如下图:
5、填写监控服务器中jprofiler的安装目录,如下图:
6、选择启动脚本
点击Next进入“启动脚本选择”对话框,输入JBoss启动脚本(run.bat)的路径,远程的可以将jboss 启动脚本(run.sh)下载到本地,然后选择。如下图:
7、选择JVM的厂商、版本和模式
点击Next进入“JVM选择”对话框,我们选择Sun公司的hotspot 1.5.0,如下图:
8、输入JProfiler的端口号
点击Next进入“JProfiler端口输入”对话框,保持默认不变,如下图:
9、选择JBoss是否在连接到JProfiler后再启动JBoss
点击Next进入选择页面
1、JBoss是否在连接到JProfiler后再启动
2、不等待JProfiler连接,直接启动
这里选择2,只在需要监控时才连接,对jboss运行不产生影响,如下图:
10 填写linux下jprofiler配置文件的保存路径
11、确认配置
点击Next进入“确认配置”对话框,确认配置是否正确,如下图,如果不正确点击Back到相应对话框进行修改。
这里要注意几个地方:
1、配置文件的保存路径C:\\Documents and
Settings\\Administrator\\.jprofiler4\\config.xml
2、运行脚本名称:c:\\run_jprofiler.sh
注意脚本里面的下列代码,就是本次配置新增的
JAVA_OPTS=\"-agentlib:jprofilerti=port=8849,nowait,id=116,config=/home/sps/jprofiler4/con fig/config.xml -Xbootclasspath/a:/home/sps/jprofiler4/\"
12、配置完成
点击Next进入“完成配置”对话框,点击finish完成配置,
配置完成后将本地的配置文件C:\\Documents and
Settings\\Administrator\\.jprofiler4\\config.xml 拷贝到linux下放置配置文件的地方,如://home/sps/jprofiler5/config
将新生成的jboss启动脚本c:\\run_jprofiler.sh 拷贝到linux下jboss的bin目录下
注:在启动脚本中,增加启动jprofiler4脚本信息,会嵌套启动jprofiler4进程,对性能会有一定的影响,但具体影响程度暂无法评估,所以在不需要监控时,建议对这些脚本进行注释。
四、启动监控
1、启动linux下jboss (使用run_jprofiler.sh脚本启动)
2、启动windows下jprofiler 选择session/start center
选择刚才配置的服务器,点击ok,就开始监控了。
看下jboss下日志,说明连接成功
JProfiler> Listening on port: 8849.
JProfiler> Reconnection. Using last settings.
五、主要功能简介
1.内存剖析 Memory profiler
JProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。
所有对象
显示类或在状况统计和尺码信息堆上所有对象的包。你可以标记当前值并显示差异值。
记录对象 Record objects
显示类或所有已记录对象的包。你可以标记出当前值并且显示差异值。
分配访问树 Allocation call tree
显示一棵请求树或者方法、类、包或对已选择类有带注释的分配信息的J2EE组件。
分配热点 Allocation hot spots
显示一个列表,包括方法、类、包或分配已选类的J2EE组件。你可以标注当前值并且显示
差异值。对于每个热点都可以显示它的跟踪记录树。
2.堆遍历 Heap walker
在JProfiler的堆遍历器(Heap walker)中,你可以对堆的状况进行快照并且可以通过选择步骤下寻找感兴趣的对象。堆遍历器有五个视图:
类 Classes
显示所有类和它们的实例。
分配 Allocations
为所有记录对象显示分配树和分配热点。
索引 References
为单个对象和“显示到垃圾回收根目录的路径”提供索引图的显示功能。还能提供合并输
入视图和输出视图的功能。
数据 Data
为单个对象显示实例和类数据。
时间 Time
显示一个对已记录对象的解决时间的柱状图。
3. CPU 剖析 CPU profiler
JProfiler 提供不同的方法来记录访问树以优化性能和细节。线程或者线程组以及线程状况可以被所有的视图选择。所有的视图都可以聚集到方法、类、包或J2EE组件等不同层上。CPU视图部分包括:?访问树 Call tree
显示一个积累的自顶向下的树,树中包含所有在JVM中已记录的访问队列。JDBC,JMS和JNDI
服务请求都被注释在请求树中。请求树可以根据Servlet和JSP对URL的不同需要进行拆
分。
热点 Hot spots
显示消耗时间最多的方法的列表。对每个热点都能够显示回溯树。该热点可以按照方法请
求,JDBC,JMS和JNDI服务请求以及按照URL请求来进行计算。
访问图 Call graph
显示一个从已选方法、类、包或J2EE组件开始的访问队列的图。
4.线程剖析 Thread profiler
对线程剖析,JProfiler提供以下视图:
线程历史 Thread history
显示一个与线程活动和线程状态在一起的活动时间表。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务