版權(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年物聯(lián)網(wǎng)設備管理平臺可行性研究報告
- 2026屆四川省德陽市高中高三上學期第一次診斷考試歷史試題(含答案)
- 2025年現(xiàn)代農(nóng)業(yè)科技示范園區(qū)建設可行性研究報告
- 2025年青少年體育產(chǎn)業(yè)發(fā)展可行性研究報告
- 2025年半導體產(chǎn)業(yè)鏈發(fā)展項目可行性研究報告
- 2025年綠色食品供應鏈透明度提升可行性研究報告
- 2025年生態(tài)公園建設與維護項目可行性研究報告
- 2026年三亞航空旅游職業(yè)學院單招職業(yè)適應性測試題庫附答案詳解
- 2026年鐵嶺衛(wèi)生職業(yè)學院單招職業(yè)適應性考試題庫附答案詳解
- 2026年淮南聯(lián)合大學單招職業(yè)技能測試題庫及答案詳解一套
- 2025四川產(chǎn)業(yè)振興基金投資集團有限公司應屆畢業(yè)生招聘9人筆試歷年難易錯考點試卷帶答案解析2套試卷
- 《建筑設計》課程教案(2025-2026學年)
- 軟裝工程質(zhì)量管理方案有哪些
- 海水墻面防水施工方案設計
- 路面攤鋪安全培訓內(nèi)容課件
- 水箱安裝施工質(zhì)量管理方案
- 2025年國企人力資源管理崗招聘考試專業(yè)卷(含崗位說明書)解析與答案
- 光伏電廠防火安全培訓課件
- 小學數(shù)學單位換算表(高清可打?。?/a>
- 千縣工程縣醫(yī)院微創(chuàng)介入中心綜合能力建設評價標準
- 交通事故處理講解
評論
0/150
提交評論