欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JProfiler11使用教程之JVM調(diào)優(yōu)問題小結(jié)

 更新時間:2022年03月15日 17:17:11   作者:胡安民  
這篇文章主要介紹了JProfiler11使用教程之JVM調(diào)優(yōu),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

安裝JProfiler

jprofiler_windows-x64_11_0_2

鏈接: https://pan.baidu.com/s/1EWxW5VT100D1v_HVvKYGqQ?pwd=qif5 
提取碼: qif5 

JProfiler11破解

然后打開破解機器 KeyGen.exe

鏈接: https://pan.baidu.com/s/13MX6iLFtcmerdGovYjOh4g?pwd=cx7e 
提取碼: cx7e 

配置本地監(jiān)控

我們啟動一個本地項目weblogic,Jboss,tomcat或者springboot都行,我們就拿主流的springboot來說(其實內(nèi)嵌的就是tomcat)

然后我們打開jprofiler,監(jiān)控指定的程序

配置遠(yuǎn)程監(jiān)控

我的服務(wù)器是x86的uname -m
在需要監(jiān)聽的目標(biāo)服務(wù)器上安裝jprofiler_linux_11_0_2.tar.gz

鏈接: https://pan.baidu.com/s/1O03jqyBdsPZHt3zpoMzwAg?pwd=n297 
提取碼: n297 

我是放在/opt 下,解壓tar zxfv jprofiler_linux_11_0_2.tar.gz,重命名為:jprofiler11
配置/etc/profile文件,添加如下內(nèi)容

export INSTALL4J_JAVA_HOME=/usr/local/src/java/java-se-8u41-ri/jre  #jdk安裝目錄下
export LD_LIBRARY_PATH=/opt/jprofiler11/bin/linux-x86  #jprofile的安裝目錄下

找java安裝目錄whereis java

/usr/local/src/java/java-se-8u41-ri/ 就是安裝目錄,我們進(jìn)去看看有沒有jre目錄

修改完后,使環(huán)境變量生效
source /etc/profile

需要監(jiān)聽的項目必須在服務(wù)器上運行中否則JProfiler 啟動會失敗的

啟動自己的項目然后檢測是否啟動

啟動成功后那么就可以啟動服務(wù)器上的JProfiler服務(wù)了 /opt/jprofiler11/bin/jpenable

選擇[1]然后會顯示客戶端可以連接的端口號,用于客戶端連接服務(wù)器的

配置window下的jprofile11

jProfiler客戶端介紹

儀表盤

這個不用多說,看說明就知道啥東西

查看對象增長情況

ALL Objects(全部對象)

Recorded Objects (記錄對象)

我們可以指定開啟時間內(nèi)記錄對象的的使用情況,這樣就能更佳快速的找到問題 ,每次開關(guān)都會從新統(tǒng)計,還有最關(guān)鍵的就是 Mark Current 這個按鈕,他可以標(biāo)記現(xiàn)在對象的使用情況為綠色,那么行增的對象就是紅色了,這樣一對比就知道那個對象有問題了

右鍵可以刪除標(biāo)記

Allocation Call Tree(記錄調(diào)用樹)

開始后統(tǒng)計調(diào)用情況,每次開關(guān)都會從新統(tǒng)計

Allocation Hot Spots(熱點)

能統(tǒng)計出來開啟時間段內(nèi)使用某些方法或者xxx 的調(diào)用情況,相當(dāng)于反向查詢誰調(diào)用我了,開關(guān)后從新統(tǒng)計

上圖顯示println這個方法被 MathGame.run 和MathGame.main方法調(diào)用,以及他們這些方法一共調(diào)用了多少次和多少時間以及占用的內(nèi)容大小

Class Tracker(類調(diào)用跟蹤)

能檢測指定類,的時間片段調(diào)用情況和調(diào)用頻率來進(jìn)行分析出來,是否有問題

選擇需要監(jiān)控的類或者包那那么當(dāng)這些類進(jìn)行被調(diào)用了,就會在視圖上顯示

可以看到在什么時間調(diào)用了 ,如果想暫停下來

檢測各種調(diào)用情況

Call Tree (調(diào)用樹)

通過關(guān)閉在開啟可以重新統(tǒng)計

一般情況我們會過濾掉我們不想看到的內(nèi)容

選擇demo.就是過濾此包下的全部內(nèi)容,想要恢復(fù)過濾內(nèi)容可以在設(shè)置里進(jìn)行恢復(fù)

Hot Spots(熱點)

Call Graph(查看方法的調(diào)用樹)

Method Statistics(方法統(tǒng)計)

開啟后,這段時間內(nèi)被調(diào)用的方法就會被攔截到

Call tracer 調(diào)用跟蹤

開啟后會記錄這段時間內(nèi)的方法執(zhí)行情況包括內(nèi)部執(zhí)行情況,關(guān)閉后以樹展示出來

從上圖標(biāo)記是紅的,就能看出來方法內(nèi)部執(zhí)行了循環(huán)了

如果不想看到某方法那么可以隱藏掉

恢復(fù)顯示

JavaScript XHR

JProfiler Origin Tracker_v1.0.3.crx

鏈接: https://pan.baidu.com/s/1gnhtmBIcUYJbxecmrKojPg?pwd=rrpu 
提取碼: rrpu 

要使用此功能,您必須使用Google Chrome 作為瀏覽器并安裝 JProfiler 源跟蹤器擴展。

運行前端時候點擊下

然后插件顏色就變?yōu)榧t色了,那么就說明這個網(wǎng)站激活成功了

然后回到 jprofiler中就發(fā)現(xiàn)在監(jiān)聽中了

檢測線程各種情況

注意: 如果請求的線程內(nèi)部沒有長時間的阻塞或者睡眠,一般都抓不到的,因為更新頻率是2秒一次

Thread History(線程狀態(tài))

看著圖很簡單,除了綠色的其他如果時間過長都有問題,如果出現(xiàn)紅色那么就是死鎖
測試方式就是打開監(jiān)控后去訪問有問題的功能,那么就能排查出來具體的問題, 找到問題的線程,那么我們就能去獲取這個線程內(nèi)部的堆棧,從堆棧中就能看出來問題是啥

Thread Monitor(線程列表)

如果線程過多, 在Thread History中不好找那么我們可以通過這個列表進(jìn)行篩選,這樣就能快速鎖定有問題的線程了

Thread Dumps(線程堆棧)

通過上面的方法找到問題的線程方法后,然后我們就能在 Thread Dumps去查詢對應(yīng)方法的堆棧信息
每次點擊都能獲取最新的全部線程堆棧信息,并且以樹型展示

上圖紅色的就是死鎖,告訴你這個鎖發(fā)生在那個類多少行

這種都是第三方的請求,(有用戶的有其他工具的,要會分辨,看堆棧就能看出來的)

類似于下圖這種就不用看,這都是系統(tǒng)自己的請求或者其他的請求

上圖是tomcat內(nèi)部進(jìn)行喚醒和掛起線程的操作,估計是線程池的東西

我們一般找下面這圖出現(xiàn)的請求這個才是真實的請求

從上圖就能看出來問題了,是內(nèi)部一直在調(diào)用sleep,看堆棧是從下往上看,然后我們?nèi)タ丛创a

數(shù)據(jù)庫連接和sql語句執(zhí)行情況

Mybaitis 和JDBC都一樣

1秒(s)=1000毫秒 1毫秒(ms)=1000微妙 10萬微妙(us)=1秒
從上圖可以看到我查詢用戶數(shù)量才使用了1毫秒不到

可以進(jìn)行開關(guān)進(jìn)行從新監(jiān)控

請求情況

注意: 如果是請求是死循環(huán)或者死鎖那么這個是監(jiān)控不到的,必須這個請求能響應(yīng)才行

至于其他的功能我基本沒用到這里就不說了,用到了在補上

堆快照分析 導(dǎo)出當(dāng)前堆的快照

導(dǎo)入對堆文件快照

分析堆快照

Current Object Set(當(dāng)前堆的所有對象情況)

一般需要多個堆的快照進(jìn)行對比,進(jìn)行發(fā)現(xiàn)是否有內(nèi)存泄露問題和對象增長速度過快問題,從而進(jìn)行分析原因

Thread Dump(當(dāng)前堆的線程情況)

可以查看到死鎖,或者死循環(huán)或者長時間處于等待狀態(tài)的線程,執(zhí)行的方法和問題原因

比較快照

注意: (.hprof)文件的快照只支持內(nèi)存比較 ,而jps快照是支持所有的,但是需要開啟部分功能才行

我準(zhǔn)備了3個同源的堆快照(.hprof),是在不同時間段獲取的

同時選取需要對比的全部快照

當(dāng)然也可以后期一個一個添加

然后按住Shift+鼠標(biāo)左鍵選擇2個需要對比的快照(一次最多對比2個快照,建議拿第一個快照和比第一個時間段大的快照進(jìn)行依次對比)

內(nèi)存比較

加號就是 333333.hprof這個快照比00000.hprof快照增加的
最后下面有一個匯總,333333.hprof比00000.hprof 總體增加了還是減少了多少內(nèi)存

對比不同時間段快照,可以看出來內(nèi)存是一直處于增長的,還是有減有增,如果一直維持在一個范圍那么可以接收的 ,如果對比多個快照發(fā)現(xiàn)都是一直處于增長沒有減過那么肯定是有問題的,時間長了就會發(fā)生oom了

調(diào)用情況比較

必須開啟

然后保存為jps文件

然后就可以進(jìn)行對比了

到此這篇關(guān)于JProfiler11使用教程之JVM調(diào)優(yōu)的文章就介紹到這了,更多相關(guān)JProfiler11使用JVM調(diào)優(yōu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論