JProfiler在Linux上的安装和使用 (一)_第1页
JProfiler在Linux上的安装和使用 (一)_第2页
JProfiler在Linux上的安装和使用 (一)_第3页
JProfiler在Linux上的安装和使用 (一)_第4页
JProfiler在Linux上的安装和使用 (一)_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JProfiler在Linux上的安装和使用

一前百

前段时间网厅web服务老是OutOfMemoryError,查找了一些网站,找到一个应用监控

工具JProfiler,可以在本地机器上监控远程服务器上的应用。搭建环境的时候遇到了一些问

题,也查找了网上的一些资源,但都不太全面,现把自己的安装和使用过程记录下来,方便

后来人使用。

二环境介绍

服务器端

操作系统:linuxRedHatAS5

应用服务器:WebLogic9.2

java虚拟机版本:1.5.0.07

jprofiler版本:jprofiler_linux_5_l_4.sh(在csdn可以下载到)

客户端

操作系统:WindowsXpSP2

Jprofiler5.1.4forwindows(安装包:jprofi1erwindows514.exe在csdn

可以下载到)

三客户端JProfiler安装及配置

1.打开本地jprofiler

1-1

图1—1使用向导,我们可以选择Cancel

2.

1-2

选择session->lntegrationwizards->NewRemoteIntegration

3.

1-3

l)Theprofiledapplicationislocated选择Onaremotecomputer

2)Platformoftheremotecomputer选择LinuxX8&AMD64

3)Next

4.

Remoteaddress中写入所要监控的服务器IP地址

5

1-5

Installationdirectory中写入jprofller在服务器中的路径,比如/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

|JKDetached

1-8

选择WaitforaconnectionfromtheJProfilerGUI

9

JPrefiler4JflJxj

SessionViewProfilingGoToWindowHelp

MemcryV的

Heapwa3

CPUViews

ThreadWev/s

VMTeiemetryMews

"Detached

红框中内容设置环境变量时使用。

选择next

选No,Iwillstartthesessionlater因为我们还没有配置服务器端。

选择finish

服务器端JProfiler安装及配置

服务器端安装:

1.jprofiler_linux_5_l_4.sh上传到服务器/opt/路径下

2.如果安装包为.rpm,先执行apt-getinstallrpm;

3.安装jprofiler:rpm-ivhjprofiler_linux_4_3_2.rpm

4.如果安装包为.sh,直接执行

5.修改.bash_profile文件,新增内容类似如下(修改为自己服务器上的实际路径):

cxportLD_LIBRARY_PATH=/opt/jprofi1cr5/bin/linu:<-x86

exporiINSTAIJ.4J_JAVA_ll0ME=/weblogic/bea/jdkl50_10/jre

6.把C:\DocumentsandSettings'用户名\.jprofiler5\下的config,xml上传到远程服务揩上,

路径为本地客户端配置里第5步所设置的路径。比如/opt/jprofiler5下

7.修改weblcgic启动文件slarWebLcgic.sh.在黑字后面的位置.添加纤字部分的内容,汴意ccMig

文件的路径,以及agent.jar文件的实际路彳仝,要根据自己的实际路径进行修改。此处的id为

config,xml文件里的远程服务器所在配置项里的sessionid,也要根据config.xml里面的具体

sessionid进行修改。

-Dweblogic.Name=$(SERVERNAME}

-Djava.security,policy-$(WL_HOME}/server/1ib/wcblogic.policy$PROXYSETTINGS)

${SERVER_CLASS}*$(JAVA_HOME}/bin/java${JAVA_VM)${MEM_ARGS}${JAVA_0PTI0NS}

-Xrunjprofiler:port=8849,nowait,id=104,config=/wblogic/wss/jprofiler5/config.>:ml

-Xbootclasspath/a:/weblogic/jprofi1er5/bin/agent.jar

安装过程遇到的问题以及解决方法:

1.执行,报错:gunzip:sfx_archive.tar.gz:notingzipformal

Iamsorry,buttheinstallerfileseemstobecorrupted.Ifyoudownloadedthatfile

pleasetryitagain.Ifyoutransferthatfilewithftppleasemakesurethatyouarc

usingbinarymode.

解决方法:把ftp软件的Transfertype改为Binary,.重新上传。

2.执行jprofiler」inux_5_l_4.sh

DoyouwanttodownloadaJRE?(y/n)

n

报错:PleasedefineINSTALL4J_JAVA_H0MEtopointtoasuitableJVM.

解决方法:

cd

Is-al

vi.bash_profile文件,增加以下两行内容:(注意修改为自己远程服务器上实际的jre路径)

exportINSTALL4J_JAVAH0ME=/weblogic/bea/jdkl50^L0/jre

执行source.bash_profile使环境变量立即生效。

3.报错内容如下:

StartingInstaller

java.lang,reflect.InvocationTargetException

atjava.awt.Evenljueue.invokeAndWait(EventQueue.java:853)

atjavax.swing.SwingUti1ities.invokeAndWaiI(SwingUli1ilies.java:1257)

atcom.install4j.runtime,installer.Installer,main(UnknownSource)

Causedby:java.a*t.HeadlessException:

NoXllDISPLAYvariablewasset,butthisprogramperformedanoperationwhichrequires

CouldnotdisplaytheGUI.ThisapplicationneedsaccesstoanXServer.

IfyouhaveaccessthereisprobablyanX1ibrarymissing.

*******************************************************************

Youcanalsorunthisapplicationinconsolemodewithout

accesstoanXserverbypassingtheargument-c

*****************冬*************************************************

Anerroroccurred:

java.lang.RuuLimeExceplion

Errorlog:/tmp/instal14jError25068.log

解决方法:执行jprnfiler」inux_5_l_4.sh-c

五功能简介

在本地启动JProfiler,选择打开,选择配置好的远程服务器session。启动后会出现下面

的画面

Settings

Profilingsettings:Template:A*Featuresenabied,bytecode

Filtersettings:1filterruleformethodcallrecording

Triggersettings:Noactivetriggers

Startup

口RecordCPUdatacnstartup

口Recordallocationsonstartup

Performance

CPUusage:medium

Memoryusage:Jb/

或HelpOK||Cancel

点击OK进入

RIAPACIMToecfct5.»onloeoLL^xt(<)-JPr«fil«r5.I.

SesnionViewProfiinqGoTo世hdowHelp

再法这部0a③雀戈小

AAaareaatiorlevel:口梦纪s_____________________________

ivt3r3pjX▼]See

,/"Jew)pvaJongShng

【XIJ

ateesXl

占^va-utl.HashHapstrtry

reFkcl.Me*hod2/yi3>3

H33DWalef

1♦pvaAJd.Ma$htatf€$:rxryMBI,e”312Mes

Q23.H*…■■11,X7dg9Obgx

jy/axd.H帅也除帆。iwrdw■决。bibMes

byto(]■6501,431峭

CP」ViewspvoAjd.MohtaWc■60AMJMC

choe<]■S96系32bM

重gg3enwn:.刈wtnar印repeny■>,uy.idJbnes

pvaJongClass■SS230912b大”

TlreadViewsM】

3”J6gS»rngkj:Gr■50712ISSbvtw

r忘-a■叱&t>.«wb-/c«

dZ。心rP*«0urc*Erttry■“8l6720b-4«

jjva<utl.Array4.l5t1泗d.016bnes

*MTvkiiwUy¥wv&

orc«pxh«x«rc^<dom.D»:«<r4dMtrDn^■33410638bM

鼻心gnsems:.-K>jcftrtocdnDe$ci|p<oiSq)pat■我05420bn«

pvautl.H卦%M、|3104街Ob吠”

J&thod35cr即■32UUZObnes

or^.jp>±c.tomcat.Lblhttp.mapperMs^xT'/Aapct|2437.776bAts

JWJObpM叮双卜4irtf/|ZX)5.K0b>t«

nvnj/nj”fSrfHJMrr…re|?f164t>h*K

pvabeansPr^ertY?€$cnpccr|zco9.sob/e5

KSMIH.YM”IIM4416h”K

ofC.cPKne.ccm^ons.rroMer.KtnbuQlnro1172U.0D6bnes

华»4L1r0MVpfFWry|1依S4Fh"x

rc(kv.l.Cui>Uuilvr11957.4,01MG

1427

U»MllilU.'OAT3,FlcOirC34CK(5FAPc,UJf.2”.M710.5MbAo

ywggjMwr"hfTNnSHMgM"k”〔rfc14?4RQhvt«

moMlJnAll心4MH;Ml2.256bAoq

(■•・・■♦・・、・,,•■..、人A*A1■一

Totefc肉&M3,57?18

1,***,/*V«RM'][▼|QTY心m

RcjgOMc.l,[Abcob。、C&"ccIMcccb0nHpt$pctoOastxw]

5入ULuuinJaU2>:02;30口小5”“

1.内存视图MemoryViews

JProfilcr的内存视图部分可以提供动态的内存使用状况更新视图和显示

关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存

在的对象和作为垃圾回收的对象。

•所有对象

显示类或在状况统计和尺码信息堆上所有对象的包。你可以标记当前

值并显示差异值。

•记录对象Recordobjects

显示类或所有己记录对象的包。你可以标记出当前值并且显示差异值。

•分配访问树Allocationcalltree

显示一棵请求树或者方法、类、包或对已选择类有带注释的分配信息

的J2EE组件。

•分配热点Allocationhotspots

显示一个列表,包括方法、类、包或分配已选类的J2EE组件。你可以

标注当前值并且显示差异值。对于每个热点都可以显示它的跟踪记录

树。

2.堆遍历Heapwalker

在JProfiler的堆遍历器(Heapwalker)中,你可以对堆的状况进行快照并

且可以通过选择步骤下寻找感兴趣的对象。堆遍历器有五个视图:

•类Classes

显示所有类和它们的实例。

•分配Allocations

为所有记录对象显示分配树和分配热点。

•引用References

为单个对象和“显示到垃圾回收根目录的路径”提供索引图的显示功

能。还能提供合并输入视图和输出视图的功能。

•Data

为单个对象显示实例和类数据。

•时间Time

显示一个对已记录对象的解决时间的柱状图。

3.CPU剖析CPUViews

JProfilcr提供不同的方法来记录访问树以优化性能和细节。线程或者线程

组以及线程状况可以被所有的视图选择。所有的视图都可以聚集到方法、类、包

或J2EE组件等不同层上。CPU视图部分包括:

•访问树Calltree

显示一个积累的自顶向下的树,树中包含所有在JVM中已记录的访问队

歹ij。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

这样当服务出现00M异营时,会生成*.hprof内存快照文件,供分析使用。

在测试环境服务器上,增加dump参数,同时在本地进行远程动态监控。结合LoadRunner

进行压力测试。抓取不同时期远程服务器的内存快照。

分析快照文件,对比不同的快照文件。找到哪些类实例一直增长,或者结合代码,查找

某些实例特别多的,占用内存特别多的类。从而解决问题。

1,

b,按实例数量排序(检查实例不正常部分代码)

Ejftvft_pid25483.hprof-JProfilcr<.0

“"ionVievtrofilinc8!♦力nd”助Ip

喝国口♦,•二

Currentobjectset:3023730objectsin5993classes92018191arrays

is«l«ctionsttp,统Mshallxsix«

■・oryYievi

Clw».«[v]IV»...»I

C0unt▼

HeapY«lk»rj".String

电【】

■ZS.B

j«va3*1K&iMItpSEnlry■1A062

jm19CObj«t()■112,0198,311kB

CFVVs

j"。«tslArrayLi%t■M.6712.2:8kB

cc*ty4i«.ass.«<b.cotvton.voFrodkttrS4t■X.544

j"。】•><r<f•♦«kR・£3・、c・■56,88931/3

MU]I41.36SM

Thr«*dVi«vsj»v»vtilK4iht4ble$Ent>7IXJT9

javawillKaiMf«f4Ealry(]la.599SICZ

12^011

十■川—i・

■onatorVi»v»c<«V«<st*xb.biuldtmt.VliJtv<Typ«lfM«(]inn?

cc*staxbbuildti«tinterritlMBV«11M4XM«123.777

v&xk&K*^utilArK»&lfil«tDir«etoryNol)f>«rXttft12L4T0

jtv。lwr«fS«ftR«f<re)ce121,397

j"。vtilTr««V*ptEntryI2U311

BTtl«AetryVi««i

j«vaIMUCString)I1&400

j℃1»xrClzY116,661

ct*lyiie.“b.coMon.vo.hdli&f,Il<881

j«v«vtilLink4dK«sM«p$IntryI14.6^5政

v•¥1•<(€util*.coll<c<>o>>.CM)rcarr«»tX^tMlap$EQlryI14,137

«58kB

cc*V«*st<xbbuildtiA*:nten,b*lMsJ*vtTyp<K««eI13.2143)1kB

j»vs】•>4r«fl«ct.lethodI13135kB

诔kB

jtvt—g*■♦lMdD”cr,piarI11.708kB

j»rwx»lM«ip«c«QNen*I11.2295«kB

j«v<1«MCl<ii[)19,551a3kB

l«ks

cc*ty4*<・s$・9bcgonv。Order♦9ff,rin4VDI8367

Z<:5lkM&》

•1»••>»••>»I1X"N.

.:CH””国*n。­、&Bi“EObj«c1*

unlie*i»i«48”for♦vtlueon卜xxrw9dtyirstian.100:00IHSi12at

西列,-(533"3..芯OOl.Htf.•'A捌口都是一;..“3七H”「:,::.“五三Q.OGw1?】:①

c,另一个内存快照,按实例多少排序。

)ava_pidl2980.hprof-JProfiler<.0SAx

Scion

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论