JProfiler在Linux上的安裝和使用 (一)_第1頁
JProfiler在Linux上的安裝和使用 (一)_第2頁
JProfiler在Linux上的安裝和使用 (一)_第3頁
JProfiler在Linux上的安裝和使用 (一)_第4頁
JProfiler在Linux上的安裝和使用 (一)_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

JProfiler在Linux上的安裝和使用

一前百

前段時間網(wǎng)廳web服務老是OutOfMemoryError,查找了一些網(wǎng)站,找到一個應用監(jiān)控

工具JProfiler,可以在本地機器上監(jiān)控遠程服務器上的應用。搭建環(huán)境的時候遇到了一些問

題,也查找了網(wǎng)上的一些資源,但都不太全面,現(xiàn)把自己的安裝和使用過程記錄下來,方便

后來人使用。

二環(huán)境介紹

服務器端

操作系統(tǒng):linuxRedHatAS5

應用服務器:WebLogic9.2

java虛擬機版本:1.5.0.07

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

客戶端

操作系統(tǒng):WindowsXpSP2

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

可以下載到)

三客戶端JProfiler安裝及配置

1.打開本地jprofiler

1-1

圖1—1使用向?qū)?,我們可以選擇Cancel

2.

1-2

選擇session->lntegrationwizards->NewRemoteIntegration

3.

1-3

l)Theprofiledapplicationislocated選擇Onaremotecomputer

2)Platformoftheremotecomputer選擇LinuxX8&AMD64

3)Next

4.

Remoteaddress中寫入所要監(jiān)控的服務器IP地址

5

1-5

Installationdirectory中寫入jprofller在服務器中的路徑,比如/opt/jprofiler5(此路徑為遠

程服務器上jprofiler的安裝路徑)

6

1)

1-6-1

2)JVMVendor選擇Sun

1-6-2

Version選擇1.5.0,如果服務器操作系統(tǒng)是64位,需要勾選64bitjvm

3)Next

7

1-7

JProfilerport:寫入8849默認

8

|JKDetached

1-8

選擇WaitforaconnectionfromtheJProfilerGUI

9

JPrefiler4JflJxj

SessionViewProfilingGoToWindowHelp

MemcryV的

Heapwa3

CPUViews

ThreadWev/s

VMTeiemetryMews

"Detached

紅框中內(nèi)容設置環(huán)境變量時使用。

選擇next

選No,Iwillstartthesessionlater因為我們還沒有配置服務器端。

選擇finish

服務器端JProfiler安裝及配置

服務器端安裝:

1.jprofiler_linux_5_l_4.sh上傳到服務器/opt/路徑下

2.如果安裝包為.rpm,先執(zhí)行apt-getinstallrpm;

3.安裝jprofiler:rpm-ivhjprofiler_linux_4_3_2.rpm

4.如果安裝包為.sh,直接執(zhí)行

5.修改.bash_profile文件,新增內(nèi)容類似如下(修改為自己服務器上的實際路徑):

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.在黑字后面的位置.添加纖字部分的內(nèi)容,汴意ccMig

文件的路徑,以及agent.jar文件的實際路彳仝,要根據(jù)自己的實際路徑進行修改。此處的id為

config,xml文件里的遠程服務器所在配置項里的sessionid,也要根據(jù)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.執(zhí)行,報錯:gunzip:sfx_archive.tar.gz:notingzipformal

Iamsorry,buttheinstallerfileseemstobecorrupted.Ifyoudownloadedthatfile

pleasetryitagain.Ifyoutransferthatfilewithftppleasemakesurethatyouarc

usingbinarymode.

解決方法:把ftp軟件的Transfertype改為Binary,.重新上傳。

2.執(zhí)行jprofiler」inux_5_l_4.sh

DoyouwanttodownloadaJRE?(y/n)

n

報錯:PleasedefineINSTALL4J_JAVA_H0MEtopointtoasuitableJVM.

解決方法:

cd

Is-al

vi.bash_profile文件,增加以下兩行內(nèi)容:(注意修改為自己遠程服務器上實際的jre路徑)

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

執(zhí)行source.bash_profile使環(huán)境變量立即生效。

3.報錯內(nèi)容如下:

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

解決方法:執(zhí)行jprnfiler」inux_5_l_4.sh-c

五功能簡介

在本地啟動JProfiler,選擇打開,選擇配置好的遠程服務器session。啟動后會出現(xiàn)下面

的畫面

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③雀戈小

區(qū)

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,F(xiàn)lcOirC34CK(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.內(nèi)存視圖MemoryViews

JProfilcr的內(nèi)存視圖部分可以提供動態(tài)的內(nèi)存使用狀況更新視圖和顯示

關(guān)于內(nèi)存分配狀況信息的視圖。所有的視圖都有幾個聚集層并且能夠顯示現(xiàn)有存

在的對象和作為垃圾回收的對象。

?所有對象

顯示類或在狀況統(tǒng)計和尺碼信息堆上所有對象的包。你可以標記當前

值并顯示差異值。

?記錄對象Recordobjects

顯示類或所有己記錄對象的包。你可以標記出當前值并且顯示差異值。

?分配訪問樹Allocationcalltree

顯示一棵請求樹或者方法、類、包或?qū)σ堰x擇類有帶注釋的分配信息

的J2EE組件。

?分配熱點Allocationhotspots

顯示一個列表,包括方法、類、包或分配已選類的J2EE組件。你可以

標注當前值并且顯示差異值。對于每個熱點都可以顯示它的跟蹤記錄

樹。

2.堆遍歷Heapwalker

在JProfiler的堆遍歷器(Heapwalker)中,你可以對堆的狀況進行快照并

且可以通過選擇步驟下尋找感興趣的對象。堆遍歷器有五個視圖:

?類Classes

顯示所有類和它們的實例。

?分配Allocations

為所有記錄對象顯示分配樹和分配熱點。

?引用References

為單個對象和“顯示到垃圾回收根目錄的路徑”提供索引圖的顯示功

能。還能提供合并輸入視圖和輸出視圖的功能。

?Data

為單個對象顯示實例和類數(shù)據(jù)。

?時間Time

顯示一個對已記錄對象的解決時間的柱狀圖。

3.CPU剖析CPUViews

JProfilcr提供不同的方法來記錄訪問樹以優(yōu)化性能和細節(jié)。線程或者線程

組以及線程狀況可以被所有的視圖選擇。所有的視圖都可以聚集到方法、類、包

或J2EE組件等不同層上。CPU視圖部分包括:

?訪問樹Calltree

顯示一個積累的自頂向下的樹,樹中包含所有在JVM中已記錄的訪問隊

歹ij。JDBC,JMS和JNDI服務請求都被注釋在請求樹中。請求樹可以根據(jù)

Servlet和JSP對URL的不同需要進行拆分。

?熱點Hotspots

顯示消耗時間最多的方法的列表。對每個熱點都能夠顯示回溯樹。該

熱點可以按照方法請求,JDBC,JMS和JNDI服務請求以及按照URL請

求來進行計算。

?訪問圖Callgraph

顯示一個從己選方法、類、包或J2EE組件開始的訪問隊列的圖。

?訪問棧Calltracer

顯示所有記錄的函數(shù)調(diào)用的時間序列。calltracer是根據(jù)線程、包

以及類來分組的,因此可以容易的找到感興趣的指定區(qū)域。可以隱藏

線程、包類或者單個函數(shù),以把大量的信息整理成容易分析事物。該

查看有利于分析涉及多個線程的用例,或者從調(diào)試器無法達到的角度

來詳細地分析控制流。

4.線程剖析ThreadViews

對線程剖析,JProfiler提供以下視圖:

?線程歷史Threadhistory

顯示一個與線程活動和線程狀態(tài)在一起的活動時間表。

?線程監(jiān)控Threadmonitor

顯示一個列表,包括所有的活動線程以及它們目前的活動狀況。

?死鎖探測圖表DeadlockDetection

顯示一個包含了所有在JVM里的死鎖圖表。

?目前使用的監(jiān)測器Currentmonitoruseage

顯示目前使月的監(jiān)測器并且包括它們的關(guān)聯(lián)線程。

?歷史檢測記錄Historyusagehistory

顯示重大的等待事件和阻塞事件的歷史記錄。

?監(jiān)測使用狀態(tài)Monitorusagestatistics

顯示分組監(jiān)測,線程和監(jiān)測類的統(tǒng)計監(jiān)測數(shù)據(jù)。

5.VM自動勘測VMtelemetryViews

觀察JVM的內(nèi)部狀態(tài),JProfiler提供了不同的遙感勘測視圖,如下所示:

?堆Heap

顯示一個堆的使用狀況和堆尺寸大小活動時間表。

?記錄的對象Recordedobjects

顯示一張關(guān)于活動對象與數(shù)組的圖表的活動時間表。

?垃圾回收Garbagecollector

顯示一張關(guān)于垃圾回收活動的活動時間表。

?類Classes

顯示一個與已裝載類的圖表的活動時間表。

?線程Threads

顯示一個與動態(tài)線程圖表的活動時間表。

?可以分別查看heap,eden,survivors,code_cache,permanent內(nèi)存

使用情況。并且對代碼或者gc策略進行調(diào)板。

六實踐(WEB內(nèi)存溢出)

問題解決思路:

在正式環(huán)境服務器上,只增加weblogic啟動參數(shù)-XX:+HeapDumpOnOutOfMemoryError

這樣當服務出現(xiàn)00M異營時,會生成*.hprof內(nèi)存快照文件,供分析使用。

在測試環(huán)境服務器上,增加dump參數(shù),同時在本地進行遠程動態(tài)監(jiān)控。結(jié)合LoadRunner

進行壓力測試。抓取不同時期遠程服務器的內(nèi)存快照。

分析快照文件,對比不同的快照文件。找到哪些類實例一直增長,或者結(jié)合代碼,查找

某些實例特別多的,占用內(nèi)存特別多的類。從而解決問題。

1,

b,按實例數(shù)量排序(檢查實例不正常部分代碼)

Ejftvft_pid25483.hprof-JProfilcr<.0

“"ionVievtrofilinc8!?力nd”助Ip

喝國口?,?二

Currentobjectset:3023730objectsin5993classes92018191arrays

is?l?ctionsttp,統(tǒng)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,另一個內(nèi)存快照,按實例多少排序。

)ava_pidl2980.hprof-JProfiler<.0SAx

Scion

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論