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

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

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

安裝JProfiler

jprofiler_windows-x64_11_0_2

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

JProfiler11破解

然后打開(kāi)破解機(jī)器 KeyGen.exe

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

配置本地監(jiān)控

我們啟動(dòng)一個(gè)本地項(xiàng)目weblogic,Jboss,tomcat或者springboot都行,我們就拿主流的springboot來(lái)說(shuō)(其實(shí)內(nèi)嵌的就是tomcat)

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

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

我的服務(wù)器是x86的uname -m
在需要監(jiān)聽(tīng)的目標(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)去看看有沒(méi)有jre目錄

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

需要監(jiān)聽(tīng)的項(xiàng)目必須在服務(wù)器上運(yùn)行中否則JProfiler 啟動(dòng)會(huì)失敗的

啟動(dòng)自己的項(xiàng)目然后檢測(cè)是否啟動(dòng)

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

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

配置window下的jprofile11

jProfiler客戶(hù)端介紹

儀表盤(pán)

這個(gè)不用多說(shuō),看說(shuō)明就知道啥東西

查看對(duì)象增長(zhǎng)情況

ALL Objects(全部對(duì)象)

Recorded Objects (記錄對(duì)象)

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

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

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

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

Allocation Hot Spots(熱點(diǎn))

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

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

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

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

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

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

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

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

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

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

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

Hot Spots(熱點(diǎn))

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

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

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

Call tracer 調(diào)用跟蹤

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

從上圖標(biāo)記是紅的,就能看出來(lái)方法內(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 源跟蹤器擴(kuò)展。

運(yùn)行前端時(shí)候點(diǎn)擊下

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

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

檢測(cè)線程各種情況

注意: 如果請(qǐng)求的線程內(nèi)部沒(méi)有長(zhǎng)時(shí)間的阻塞或者睡眠,一般都抓不到的,因?yàn)楦骂l率是2秒一次

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

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

Thread Monitor(線程列表)

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

Thread Dumps(線程堆棧)

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

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

這種都是第三方的請(qǐng)求,(有用戶(hù)的有其他工具的,要會(huì)分辨,看堆棧就能看出來(lái)的)

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

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

我們一般找下面這圖出現(xiàn)的請(qǐng)求這個(gè)才是真實(shí)的請(qǐng)求

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

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

Mybaitis 和JDBC都一樣

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

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

請(qǐng)求情況

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

至于其他的功能我基本沒(méi)用到這里就不說(shuō)了,用到了在補(bǔ)上

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

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

分析堆快照

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

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

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

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

比較快照

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

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

同時(shí)選取需要對(duì)比的全部快照

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

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

內(nèi)存比較

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

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

調(diào)用情況比較

必須開(kāi)啟

然后保存為jps文件

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

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

相關(guān)文章

最新評(píng)論