10分钟学会JProfiler安装和使用.docx
- 文档编号:20011901
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:20
- 大小:1.25MB
10分钟学会JProfiler安装和使用.docx
《10分钟学会JProfiler安装和使用.docx》由会员分享,可在线阅读,更多相关《10分钟学会JProfiler安装和使用.docx(20页珍藏版)》请在冰豆网上搜索。
10分钟学会JProfiler安装和使用
10分钟学会JProfiler安装和使用
JProfiler在Linux上的安装和使用
一前言
前段时间网厅web服务老是OutOfMemoryError,查找了一些网站,找到一个应用监控工具JProfiler,可以在本地机器上监控远程服务器上的应用。
搭建环境的时候遇到了一些问题,也查找了网上的一些资源,但都不太全面,现把自己的安装和使用过程记录下来,方便后来人使用。
二环境介绍
服务器端
操作系统:
linuxRedHatAS5
应用服务器:
WebLogic9.2
java虚拟机版本:
1.5.0.07
jprofiler版本:
jprofiler_linux_5_1_4.sh(在csdn可以下载到)
客户端
操作系统:
WindowsXpSP2
Jprofiler5.1.4forwindows(安装包:
jprofiler_windows_5_1_4.exe在csdn可以下载到)
三客户端JProfiler安装及配置
1.打开本地jprofiler
1-1
图1-1使用向导,我们可以选择Cancel
2.
1-2
选择session->Integrationwizards->NewRemoteIntegration
3.
1-3
1)Theprofiledapplicationislocated选择Onaremotecomputer
2)Platformoftheremotecomputer选择LinuxX86/AMD64
3)Next
4.
1-4
Remoteaddress中写入所要监控的服务器IP地址
5
1-5
Installationdirectory中写入jprofiler在服务器中的路径,比如/opt/jprofiler5(此路径为远程服务器上jprofiler的安装路径)
6
1)
1-6-1
2)JVMVendor选择Sun
1-6-2
Version选择1.5.0,如果服务器操作系统是64位,需要勾选64bitjvm
3)Next
7
1-7
JProfilerport:
写入8849默认
8
1-8
选择WaitforaconnectionfromtheJProfilerGUI
9
1-9
红框中内容设置环境变量时使用。
选择next
选No,Iwillstartthesessionlater因为我们还没有配置服务器端。
选择finish
四服务器端JProfiler安装及配置
服务器端安装:
1.把jprofiler_linux_5_1_4.sh上传到服务器/opt/路径下
2.如果安装包为.rpm,先执行apt-getinstallrpm;
3.安装jprofiler:
rpm–ivhjprofiler_linux_4_3_2.rpm
4.如果安装包为.sh,直接执行
5.修改.bash_profile文件,新增内容类似如下(修改为自己服务器上的实际路径):
exportLD_LIBRARY_PATH=/opt/jprofiler5/bin/linux-x86
exportINSTALL4J_JAVA_HOME=/weblogic/bea/jdk150_10/jre
6.把C:
\DocumentsandSettings\用户名\.jprofiler5\下的config.xml上传到远程服务器上,路径为本地客户端配置里第5步所设置的路径。
比如/opt/jprofiler5下
7.修改weblogic启动文件startWebLogic.sh,在黑字后面的位置,添加红字部分的内容。
注意config文件的路径,以及agent.jar文件的实际路径,要根据自己的实际路径进行修改。
此处的id为config.xml文件里的远程服务器所在配置项里的sessionid,也要根据config.xml里面的具体sessionid进行修改。
-Dweblogic.Name=${SERVER_NAME}-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy${PROXY_SETTINGS}${SERVER_CLASS}"${JAVA_HOME}/bin/java${JAVA_VM}${MEM_ARGS}${JAVA_OPTIONS}-Xrunjprofiler:
port=8849,nowait,id=104,config=/weblogic/wss/jprofiler5/config.xml-Xbootclasspath/a:
/weblogic/jprofiler5/bin/agent.jar
安装过程遇到的问题以及解决方法:
1.执行,报错:
gunzip:
sfx_archive.tar.gz:
notingzipformat
Iamsorry,buttheinstallerfileseemstobecorrupted.Ifyoudownloadedthatfilepleasetryitagain.Ifyoutransferthatfilewithftppleasemakesurethatyouareusingbinarymode.
解决方法:
把ftp软件的Transfertype改为Binary,重新上传。
2.执行jprofiler_linux_5_1_4.sh
DoyouwanttodownloadaJRE?
(y/n)
n
报错:
PleasedefineINSTALL4J_JAVA_HOMEtopointtoasuitableJVM.
解决方法:
cd
ls-al
vi.bash_profile文件,增加以下两行内容:
(注意修改为自己远程服务器上实际的jre路径)
exportINSTALL4J_JAVA_HOME=/weblogic/bea/jdk150_10/jre
执行source.bash_profile使环境变量立即生效。
3.报错内容如下:
StartingInstaller...
java.lang.reflect.InvocationTargetException
atjava.awt.EventQueue.invokeAndWait(EventQueue.java:
853)
atjavax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:
1257)
atcom.install4j.runtime.installer.Installer.main(UnknownSource)
Causedby:
java.awt.HeadlessException:
NoX11DISPLAYvariablewasset,butthisprogramperformedanoperationwhichrequiresit.
CouldnotdisplaytheGUI.ThisapplicationneedsaccesstoanXServer.
IfyouhaveaccessthereisprobablyanXlibrarymissing.
*******************************************************************
Youcanalsorunthisapplicationinconsolemodewithout
accesstoanXserverbypassingtheargument-c
*******************************************************************
Anerroroccurred:
java.lang.RuntimeException
Errorlog:
/tmp/install4jError25068.log
解决方法:
执行jprofiler_linux_5_1_4.sh-c
五功能简介
在本地启动JProfiler,选择打开,选择配置好的远程服务器session。
启动后会出现下面的画面
点击OK进入
1.内存视图MemoryViews
JProfiler的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。
所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。
∙所有对象
显示类或在状况统计和尺码信息堆上所有对象的包。
你可以标记当前值并显示差异值。
∙记录对象Recordobjects
显示类或所有已记录对象的包。
你可以标记出当前值并且显示差异值。
∙分配访问树Allocationcalltree
显示一棵请求树或者方法、类、包或对已选择类有带注释的分配信息的J2EE组件。
∙分配热点Allocationhotspots
显示一个列表,包括方法、类、包或分配已选类的J2EE组件。
你可以标注当前值并且显示差异值。
对于每个热点都可以显示它的跟踪记录树。
2.堆遍历Heapwalker
在JProfiler的堆遍历器(Heapwalker)中,你可以对堆的状况进行快照并且可以通过选择步骤下寻找感兴趣的对象。
堆遍历器有五个视图:
∙类Classes
显示所有类和它们的实例。
∙分配Allocations
为所有记录对象显示分配树和分配热点。
∙引用References
为单个对象和“显示到垃圾回收根目录的路径”提供索引图的显示功能。
还能提供合并输入视图和输出视图的功能。
∙数据Data
为单个对象显示实例和类数据。
∙时间Time
显示一个对已记录对象的解决时间的柱状图。
3.CPU剖析CPUViews
JProfiler提供不同的方法来记录访问树以优化性能和细节。
线程或者线程组以及线程状况可以被所有的视图选择。
所有的视图都可以聚集到方法、类、包或J2EE组件等不同层上。
CPU视图部分包括:
∙访问树Calltree
显示一个积累的自顶向下的树,树中包含所有在JVM中已记录的访问队列。
JDBC,JMS和JNDI服务请求都被注释在请求树中。
请求树可以根据Servlet和JSP对URL的不同需要进行拆分。
∙热点Hotspots
显示消耗时间最多的方法的列表。
对每个热点都能够显示回溯树。
该热点可以按照方法请求,JDBC,JMS和JNDI服务请求以及按照URL请求来进行计算。
∙访问图Callgraph
显示一个从已选方法、类、包或J2EE组件开始的访问队列的图。
∙访问栈Calltracer
显示所有记录的函数调用的时间序列。
calltracer是根据线程、包以及类来分组的,因此可以容易的找到感兴趣的指定区域。
可以隐藏线程、包类或者单个函数,以把大量的信息整理成容易分析事物。
该查看有利于分析涉及多个线程的用例,或者从调试器无法达到的角度来详细地分析控制流。
4.线程剖析ThreadViews
对线程剖析,JProfiler提供以下视图:
∙线程历史Threadhistory
显示一个与线程活动和线程状态在一起的活动时间表。
∙线程监控Threadmonitor
显示一个列表,包括所有的活动线程以及它们目前的活动状况。
∙死锁探测图表DeadlockDetection
显示一个包含了所有在JVM里的死锁图表。
∙目前使用的监测器Currentmonitoruseage
显示目前使用的监测器并且包括它们的关联线程。
∙历史检测记录Historyusagehistory
显示重大的等待事件和阻塞事件的历史记录。
∙监测使用状态Monitorusagestatistics
显示分组监测,线程和监测类的统计监测数据。
5.VM自动勘测VMtelemetryViews
观察JVM的内部状态,JProfiler提供了不同的遥感勘测视图,如下所示:
∙堆Heap
显示一个堆的使用状况和堆尺寸大小活动时间表。
∙记录的对象Recordedobjects
显示一张关于活动对象与数组的图表的活动时间表。
∙垃圾回收Garbagecollector
显示一张关于垃圾回收活动的活动时间表。
∙类Classes
显示一个与已装载类的图表的活动时间表。
∙线程Threads
显示一个与动态线程图表的活动时间表。
∙可以分别查看heap,eden,survivors,code_cache,permanent内存使用情况。
并且对代码或者gc策略进行调优。
六实践(WEB内存溢出)
问题解决思路:
在正式环境服务器上,只增加weblogic启动参数-XX:
+HeapDumpOnOutOfMemoryError这样当服务出现OOM异常时,会生成*.hprof内存快照文件,供分析使用。
在测试环境服务器上,增加dump参数,同时在本地进行远程动态监控。
结合LoadRunner进行压力测试。
抓取不同时期远程服务器的内存快照。
分析快照文件,对比不同的快照文件。
找到哪些类实例一直增长,或者结合代码,查找某些实例特别多的,占用内存特别多的类。
从而解决问题。
1,
b,按实例数量排序(检查实例不正常部分代码)
C,另一个内存快照,按实例多少排序。
D,分别查看heap,eden,survivors,code_cache,permanent内存使用情况。
七监控本地weblogic服务
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 分钟 学会 JProfiler 安装 使用