国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java 診斷利器 Arthas monitor/watch/trace命令

這篇具有很好參考價(jià)值的文章主要介紹了Java 診斷利器 Arthas monitor/watch/trace命令。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、監(jiān)控相關(guān)命令介紹

二、監(jiān)控相關(guān)命令

2.1、運(yùn)行Demo

2.2、monitor 命令

2.2.1、方法監(jiān)控

2.3、watch 命令 (重要)

2.3.1、觀察函數(shù)調(diào)用返回時(shí)的參數(shù)、this 對(duì)象和返回值

2.3.2、查看函數(shù)調(diào)用的入?yún)⒑头祷刂?/p>

2.3.3、深度遍歷 x 說明

2.3.4、查看方法調(diào)用前和函數(shù)返回后的值

2.4、trace 命令(重要)

2.4.1、查看方法耗時(shí)情況

2.4.2、據(jù)調(diào)用耗時(shí)過濾(重要)

2.4.3、包含 JDK 函數(shù)

2.4.4、trace 多個(gè)類或者多個(gè)函數(shù)

2.5、stack?命令(重要)

2.5.1、查看方法被調(diào)用的調(diào)用情況

2.5.2、根據(jù)條件表達(dá)式來過濾


一、監(jiān)控相關(guān)命令介紹

????????stack、trace、watch 線上使用比較多,本篇會(huì)詳細(xì)介紹這幾個(gè)命令。

命令 說明
monitor 方法執(zhí)行監(jiān)控
stack 輸出當(dāng)前方法被調(diào)用的調(diào)用路徑
trace 方法內(nèi)部調(diào)用路徑,并輸出方法路徑上的每個(gè)節(jié)點(diǎn)上耗時(shí)
watch 方法執(zhí)行數(shù)據(jù)觀測(cè)

這些命令,都通過字節(jié)碼增強(qiáng)技術(shù)來實(shí)現(xiàn)的,會(huì)在指定類的方法中插入一些切面來實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計(jì)和觀測(cè),因此在線上、預(yù)發(fā)使用時(shí),請(qǐng)盡量明確需要觀測(cè)的類、方法以及條件,診斷結(jié)束要執(zhí)行 stop 或?qū)⒃鰪?qiáng)過的類執(zhí)行 reset 命令。

watch/stack/trace這個(gè)三個(gè)命令都支持#cost

二、監(jiān)控相關(guān)命令

2.1、運(yùn)行Demo

????????在官方提供的?arthas(?arthas-bin.zip)程序中,提供一個(gè) math-game.jar 的 demo ,本章就通過該demo進(jìn)行演示。

????????運(yùn)行?math-game.jar

java -jar math-game.jar 

arthas trace,Java,jvm,java,開發(fā)語言

????????啟動(dòng) arthas 連接到該 java 程序

arthas trace,Java,jvm,java,開發(fā)語言

????????math-game 的源代碼如下:?

https://github.com/alibaba/arthas/blob/master/math-game/src/main/java/demo/MathGame.java

public List<Integer> primeFactors(int number) {
    if (number < 2) {
        illegalArgumentCount++;
        throw new IllegalArgumentException("number is: " + number + ", need >= 2");
    }

    List<Integer> result = new ArrayList<Integer>();
    int i = 2;
    while (i <= number) {
        if (number % i == 0) {
            result.add(i);
            number = number / i;
            i = 2;
        } else {
            i++;
        }
    }

    return result;
}

2.2、monitor 命令

????????對(duì)匹配 class-pattern/method-pattern/condition-express的類、方法的調(diào)用進(jìn)行監(jiān)控。

????????monitor?命令是一個(gè)非實(shí)時(shí)返回命令,實(shí)時(shí)返回命令是輸入之后立即返回,而非實(shí)時(shí)返回的命令,則是不斷的等待目標(biāo) Java 進(jìn)程返回信息,直到用戶輸入?Ctrl+C?為止。

????????服務(wù)端是以任務(wù)的形式在后臺(tái)跑任務(wù),植入的代碼隨著任務(wù)的中止而不會(huì)被執(zhí)行,所以任務(wù)關(guān)閉后,不會(huì)對(duì)原有性能產(chǎn)生太大影響。

參數(shù):

????????方法擁有一個(gè)命名參數(shù) [c:],意思是統(tǒng)計(jì)周期(cycle of output),擁有一個(gè)整型的參數(shù)值

參數(shù)名稱 參數(shù)說明

class-pattern

類名表達(dá)式匹配

method-pattern

方法名表達(dá)式匹配

condition-express

條件表達(dá)式

[E]

開啟正則表達(dá)式匹配,默認(rèn)為通配符匹配

[c:]

統(tǒng)計(jì)周期,默認(rèn)值為120秒

[b]

在方法調(diào)用之前計(jì)算condition-express

使用說明:

????????2.2.1、方法監(jiān)控

????????查看 MathGame 類中 primeFactors方法的運(yùn)行情況,默認(rèn)值為120秒輸出一次結(jié)果,可以通過 -c 指定統(tǒng)計(jì)周期,按 Q 或者 Ctrl+C 來終止。

monitor demo.MathGame primeFactors

arthas trace,Java,jvm,java,開發(fā)語言

?????????每隔 5s 統(tǒng)計(jì)一次方法運(yùn)行情況。

monitor demo.MathGame primeFactors -c 5 

arthas trace,Java,jvm,java,開發(fā)語言

數(shù)據(jù)說明:

監(jiān)控項(xiàng) 說明

timestamp

時(shí)間戳

class

Java類

method

方法(構(gòu)造方法、普通方法)

total

調(diào)用次數(shù)

success

成功次數(shù)

fail

失敗次數(shù)

rt

平均RT

fail-rate

失敗率

2.3、watch 命令 (重要)

????????函數(shù)執(zhí)行數(shù)據(jù)觀測(cè),讓你能方便的觀察到指定函數(shù)的調(diào)用情況。能觀察到的范圍為:返回值、拋出異常、入?yún)?,通過編寫 OGNL 表達(dá)式進(jìn)行對(duì)應(yīng)變量的查看。

參數(shù):

????????watch 的參數(shù)比較多,主要是因?yàn)樗茉?4 個(gè)不同的場(chǎng)景觀察對(duì)象 ——?函數(shù)調(diào)用之前,函數(shù)異常之后,函數(shù)返回之后,函數(shù)結(jié)束之后。

參數(shù)名稱 參數(shù)說明

class-pattern

類名表達(dá)式匹配

method-pattern

函數(shù)名表達(dá)式匹配

express

觀察表達(dá)式,默認(rèn)值:{params, target, returnObj}

condition-express

條件表達(dá)式

[b]

函數(shù)調(diào)用之前觀察

[e]

函數(shù)異常之后觀察

[s]

函數(shù)返回之后觀察

[f]

函數(shù)結(jié)束之后(正常返回和異常返回)觀察

[E]

開啟正則表達(dá)式匹配,默認(rèn)為通配符匹配

[x:]

指定輸出結(jié)果的屬性遍歷深度,默認(rèn)為 1

????????觀察表達(dá)式的構(gòu)成主要由 ognl 表達(dá)式組成,所以你可以這樣寫"{params,returnObj}",只要是一個(gè)合法的 ognl 表達(dá)式,都能被正常支持。

????????OGNL 表達(dá)式官網(wǎng):

????????https://commons.apache.org/proper/commons-ognl/language-guide.html

使用說明:

? ? ? ? 2.3.1、觀察函數(shù)調(diào)用返回時(shí)的參數(shù)、this 對(duì)象和返回值

????????查看 demo.MathGame 類中 primeFactors 方法出參和返回值

watch demo.MathGame primeFactors

arthas trace,Java,jvm,java,開發(fā)語言

  • 觀察表達(dá)式,默認(rèn)值是{params, target, returnObj},params 是入?yún)?,target 是 this?對(duì)象,returnObj 是返回值
  • 函數(shù)被執(zhí)行了兩次,第一次結(jié)果是location=AtExit,說明函數(shù)正常返回,因此可以看到returnObj結(jié)果是一個(gè) ArrayList
  • 第二次結(jié)果里是location=AtExceptionExit,說明函數(shù)拋出異常了,因此 returnObj 是 null
  • ts 是時(shí)間戳,表示當(dāng)前方法執(zhí)行時(shí)間,cost 是指當(dāng)前方法耗時(shí)
  • 默認(rèn)深度遍歷x=1,只顯示最外層對(duì)象屬性,入?yún)?Object 表示入?yún)⑹莻€(gè)對(duì)象,返回值為 ArrayList 表示返回是個(gè)對(duì)象數(shù)組

? ? ? ? 2.3.2、查看函數(shù)調(diào)用的入?yún)⒑头祷刂?

????????查看 demo.MathGame 類中 primeFactors 方法出參和返回值,結(jié)果屬性遍歷深度為2。

watch demo.MathGame primeFactors "{params,returnObj}" -x 2

arthas trace,Java,jvm,java,開發(fā)語言

  • 函數(shù)被執(zhí)行了兩次,第一次結(jié)果是location=AtExit,說明函數(shù)正常返回,因此可以看到returnObj結(jié)果是一個(gè) ArrayList
  • 第二次結(jié)果里是location=AtExceptionExit,說明函數(shù)拋出異常了,因此returnObj是 null
  • 深度遍歷x=2,不但顯示對(duì)象屬性,而且顯示對(duì)象的值,入?yún)?Object 表示入?yún)⑹莻€(gè)Integer類型的對(duì)象,對(duì)象值為1,返回值為 ArrayList 數(shù)組,值為 2,2,5,347。

? ? ? ? 2.3.3、深度遍歷 x 說明

????????在查看方法執(zhí)行信息時(shí),通過深度遍歷參數(shù) x 來查看參數(shù)和返回值顯示的信息,x 值不同,顯示的結(jié)果也不一樣。

  • -x:表示遍歷深度,可以調(diào)整來打印具體的參數(shù)和結(jié)果內(nèi)容,默認(rèn)值是 1。
  • -x:最大值是 4,防止展開結(jié)果占用太多內(nèi)存。用戶可以在ognl表達(dá)式里指定更具體的 field。

? ? ? ? 我們分別執(zhí)行三條命令,查看 深度遍歷 x = 1,x = 2,x = 3 的不同結(jié)果。其中 -n 表示執(zhí)行幾次結(jié)束,這里我們?cè)O(shè)置為1次。

watch demo.MathGame primeFactors -x 1 -n 1

watch demo.MathGame primeFactors -x 2 -n 1

watch demo.MathGame primeFactors -x 3 -n 1

arthas trace,Java,jvm,java,開發(fā)語言

arthas trace,Java,jvm,java,開發(fā)語言

arthas trace,Java,jvm,java,開發(fā)語言

  • 如果對(duì)象里面的對(duì)象屬性越多,層級(jí)越深

????????2.3.4、查看方法調(diào)用前和函數(shù)返回后的值

????????查看 demo.MathGame 類中 primeFactors() 方法調(diào)用前和方法執(zhí)行后返回的值。

  • 參數(shù)里 -n 2,表示只執(zhí)行兩次
  • 這里輸出結(jié)果中,第一次輸出的是函數(shù)調(diào)用前的觀察表達(dá)式的結(jié)果,第二次輸出的是函數(shù)返回后的表達(dá)式的結(jié)果
  • 結(jié)果的輸出順序和事件發(fā)生的先后順序一致,和命令中?-s -b?的順序無關(guān)
watch demo.MathGame primeFactors -b -s -n 2 -x 2

arthas trace,Java,jvm,java,開發(fā)語言

????????2.3.5、觀察當(dāng)前對(duì)象中的屬性

????????查看 demo.MathGame 類中的屬性值,遍歷深度為2。?

watch demo.MathGame primeFactors "target" -x 2

arthas trace,Java,jvm,java,開發(fā)語言

????????觀察當(dāng)前對(duì)象中的屬性

????????如果想查看函數(shù)運(yùn)行前后,當(dāng)前對(duì)象中的屬性,可以使用 target 關(guān)鍵字,target 代表this 對(duì)象。查看 demo.MathGame 類中 primeFactors()?方法運(yùn)行前的對(duì)象中屬性值,遍歷深度為2。?

watch demo.MathGame primeFactors "target" -b -x 2

arthas trace,Java,jvm,java,開發(fā)語言

? ? ? ? 使用 target.field_name 可以訪問當(dāng)前對(duì)象的某個(gè)屬性值,查看 demo.MathGame 類中 primeFactors()?方法運(yùn)行時(shí) illegalArgumentCount 屬性的值,遍歷深度為2

watch demo.MathGame primeFactors "target.illegalArgumentCount" -x 2

arthas trace,Java,jvm,java,開發(fā)語言

????????2.3.6、條件表達(dá)式

????????打印入?yún)⑿∮?的執(zhí)行執(zhí)行情況,只有滿足條件的調(diào)用,才會(huì)有響應(yīng)。使用 -v 參數(shù)打印更多信息。params[0] 時(shí)入?yún)⒌谝粋€(gè)參數(shù),params[0] < 0 表示只顯示第一個(gè)入?yún)⒅敌∮?的信息。

?????當(dāng)命令執(zhí)行之后,沒有輸出結(jié)果。有兩種可能:

  1. 匹配到的函數(shù)沒有被執(zhí)行
  2. 條件表達(dá)式結(jié)果是 false

?????但用戶區(qū)分不出是哪種情況,使用?-v選項(xiàng),則會(huì)打印Condition express的具體值和執(zhí)行結(jié)果,方便確認(rèn)。

watch demo.MathGame primeFactors "{params[0],target}" "params[0]<0" -v

arthas trace,Java,jvm,java,開發(fā)語言

?????????按照方法執(zhí)行耗時(shí)進(jìn)行過濾

watch demo.MathGame primeFactors '{params, returnObj}' '#cost > 1' -x 2

arthas trace,Java,jvm,java,開發(fā)語言

#cost>1(單位是ms)表示只有當(dāng)耗時(shí)大于 1ms 時(shí)才會(huì)輸出,過濾掉執(zhí)行時(shí)間小于 1ms 的調(diào)用。

????????查看方法執(zhí)行異常時(shí)的信息

watch demo.MathGame primeFactors "{params[0],throwExp}" -e -x 2

arthas trace,Java,jvm,java,開發(fā)語言

2.4、trace 命令(重要)

????????方法內(nèi)部調(diào)用路徑,并輸出方法路徑上的每個(gè)節(jié)點(diǎn)上耗時(shí)

????????trace 命令能主動(dòng)搜索 class-pattern/method-pattern 對(duì)應(yīng)的方法調(diào)用路徑,渲染和統(tǒng)計(jì)整個(gè)調(diào)用鏈路上的所有性能開銷和追蹤調(diào)用鏈路。

????????trace 能方便的幫助你定位和發(fā)現(xiàn)因 RT 高而導(dǎo)致的性能問題缺陷,但其每次只能跟蹤一級(jí)方法的調(diào)用鏈路。

參數(shù):

參數(shù)名稱 參數(shù)說明

class-pattern

類名表達(dá)式匹配

method-pattern

方法名表達(dá)式匹配

condition-express

條件表達(dá)式

[E]

開啟正則表達(dá)式匹配,默認(rèn)為通配符匹配

[n:]

命令執(zhí)行次數(shù)

#cost

方法執(zhí)行耗時(shí)

使用說明:

????????2.4.1、查看方法耗時(shí)情況

????????查看?demo.MathGame 類中 run() 方法執(zhí)行耗時(shí)情況

arthas trace,Java,jvm,java,開發(fā)語言

????????使用用 -n 參數(shù)指定捕捉結(jié)果的次數(shù)。

arthas trace,Java,jvm,java,開發(fā)語言

????????2.4.2、據(jù)調(diào)用耗時(shí)過濾(重要)

????????過濾 demo.MathGame 類中 run() 方法執(zhí)行耗時(shí)情況,'#cost > 1' 表示只顯示方法執(zhí)行耗時(shí)大于 1ms 的執(zhí)行情況,根據(jù)耗時(shí)進(jìn)行過濾,有助于在排查問題的時(shí)候,只關(guān)注異常情況。

trace demo.MathGame run '#cost > 1'

arthas trace,Java,jvm,java,開發(fā)語言

????????2.4.3、包含 JDK 函數(shù)

????????trace 包含 jdk 里的函數(shù)調(diào)用情況

trace --skipJDKMethod false demo.MathGame run

????????默認(rèn)情況下,trace 不會(huì)包含 jdk 里的函數(shù)調(diào)用,如果希望 trace jdk 里的函數(shù),需要顯式設(shè)置--skipJDKMethod false。?

????????2.4.4、trace 多個(gè)類或者多個(gè)函數(shù)

????????trace 命令只會(huì) trace 匹配到的函數(shù)里的子調(diào)用,并不會(huì)向下 trace 多層。因?yàn)?trace 是代價(jià)比較貴的,多層 trace 可能會(huì)導(dǎo)致最終要 trace 的類和函數(shù)非常多。

????????可以用正則表匹配路徑上的多個(gè)類和函數(shù),一定程度上達(dá)到多層 trace 的效果。

????????trace -E com.test.ClassA|org.test.ClassB method1|method2|method3

 trace -E demo.MathGame run|primeFactors

? ? ? ? 查看??demo.MathGame 類中,run() 方法調(diào)用鏈上 run() 和?primeFactors() 方法執(zhí)行耗時(shí)。

arthas trace,Java,jvm,java,開發(fā)語言

2.5、stack?命令(重要)

????????輸出當(dāng)前方法被調(diào)用的調(diào)用路徑

????????很多時(shí)候我們都知道一個(gè)方法被執(zhí)行,但這個(gè)方法被執(zhí)行的路徑非常多,或者你根本就不知道這個(gè)方法是從那里被執(zhí)行了,此時(shí)你需要的是 stack 命令。

參數(shù):

參數(shù)名稱 參數(shù)說明

class-pattern

類名表達(dá)式匹配

method-pattern

方法名表達(dá)式匹配

condition-express

條件表達(dá)式

[E]

開啟正則表達(dá)式匹配,默認(rèn)為通配符匹配

[n:]

執(zhí)行次數(shù)限制

使用說明

? ? ? ? 2.5.1、查看方法被調(diào)用的調(diào)用情況

????????查看 demo.MathGame 類中 primeFactors() 方法調(diào)用情況

stack demo.MathGame primeFactors

arthas trace,Java,jvm,java,開發(fā)語言

?????????輸出結(jié)果中,demo.MathGame.primeFactors 被?demo.MathGame.run() 方法調(diào)用,demo.MathGame.run() 方法被 demo.MathGame.main() 方法調(diào)用。

????????2.5.2、根據(jù)條件表達(dá)式來過濾

????????查看 demo.MathGame 類中 primeFactors() 方法第一個(gè)入?yún)⑿∮?的調(diào)用情況

stack demo.MathGame primeFactors 'params[0] < 0' -n 2

arthas trace,Java,jvm,java,開發(fā)語言

????????根據(jù)執(zhí)行時(shí)間來過濾

????????查看 demo.MathGame 類中 primeFactors() 方法執(zhí)行耗時(shí)超過 1ms 的調(diào)用情況

arthas trace,Java,jvm,java,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-810357.html

到了這里,關(guān)于Java 診斷利器 Arthas monitor/watch/trace命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JVM 診斷神器-Arthas實(shí)戰(zhàn)

    JVM 診斷神器-Arthas實(shí)戰(zhàn)

    阿里開源的Java診斷工具,它可以在運(yùn)行時(shí)對(duì)Java應(yīng)用程序進(jìn)行動(dòng)態(tài)診斷和調(diào)試 當(dāng)你遇到以下類似問題而束手無策時(shí), Arthas 可以幫助你解決 這個(gè)類從哪個(gè) jar 包加載的?為什么會(huì)報(bào)各種類相關(guān)的 Exception? 我改的代碼為什么沒有執(zhí)行到?難道是我沒 commit?分支搞錯(cuò)了? 遇到問

    2024年02月07日
    瀏覽(18)
  • 線上診斷神器-arthas基本應(yīng)用

    線上診斷神器-arthas基本應(yīng)用

    什么是Arthas呢? ?Arthas 是一款阿里推出的 線上監(jiān)控診斷產(chǎn)品 ,通過全局視角實(shí)時(shí)查看應(yīng)用 load、內(nèi)存、gc、線程的狀態(tài)信息,并能在不修改應(yīng)用代碼的情況下,對(duì)業(yè)務(wù)問題進(jìn)行診斷,包括查看方法調(diào)用的出入?yún)?、異常,監(jiān)測(cè)方法執(zhí)行耗時(shí),類加載信息等,大大提升線上問題

    2023年04月20日
    瀏覽(17)
  • Arthas診斷工具在docker中使用

    在實(shí)際工作中很多的服務(wù)都使用docker部署,如果直接在服務(wù)器中使用Arthas則找不到運(yùn)行的服務(wù)而無法使用Arthas進(jìn)行診斷,因此需要進(jìn)入到容器內(nèi)部才能使用Arthas進(jìn)入診斷。 輸入命令dashboard就可以看到,到這里就可以對(duì)服務(wù)進(jìn)行診斷了,具體的arthas命令見官方文檔或安裝idea插

    2024年02月06日
    瀏覽(17)
  • Arthas常用命令

    目錄 一、常用命令 二、常用系統(tǒng)命令 三、JVM相關(guān)命令? 四、class/classloader相關(guān)命令 五、高級(jí)命令 一、常用命令 1、dashboard 儀表板 第一部分是顯示JVM中運(yùn)行的所有線程:所在線程組,優(yōu)先級(jí),線程的狀態(tài),CPU的占用率,是否是后臺(tái)進(jìn)程等 第二部分顯示的JVM內(nèi)存的使用情況

    2024年02月08日
    瀏覽(29)
  • 一文吃透Arthas常用命令!

    Arthas 是Alibaba開源的Java診斷工具,動(dòng)態(tài)跟蹤Java代碼;實(shí)時(shí)監(jiān)控JVM狀態(tài),可以在不中斷程序執(zhí)行的情況下輕松完成JVM相關(guān)問題排查工作 。支持JDK 6+,支持Linux/Mac/Windows。這個(gè)工具真的很好用,而且入門超簡(jiǎn)單,十分推薦。 這個(gè)類從哪個(gè) jar 包加載的?為什么會(huì)報(bào)各種類相關(guān)的

    2023年04月11日
    瀏覽(20)
  • 阿里開源的java而分析工具(arthas)

    阿里開源的java而分析工具(arthas)

    1、官網(wǎng)地址:https://alibaba.github.io/arthas/quick-start.html 2、安裝 wget https://alibaba.github.io/arthas/arthas-boot.jar java -jar arthas-boot.jar 發(fā)生這個(gè)問題的原因有兩個(gè): 一個(gè)是目前機(jī)器中沒有安裝Oracle的jdk; 一個(gè)是沒有java程序運(yùn)行 解決方案: 1.卸載openJDK ?安裝Oracle的jdk? 參加地址:https://

    2024年02月04日
    瀏覽(19)
  • 利用Arthas+APM監(jiān)控進(jìn)行Java性能深度定位

    利用Arthas+APM監(jiān)控進(jìn)行Java性能深度定位

    大家可能都用過APM監(jiān)控,包括開源的Skywalking、商用的卓豪(ZOHO)ManageEngine APM應(yīng)用性能監(jiān)控、以及云監(jiān)控產(chǎn)品如聽云(Server監(jiān)控),這些APM監(jiān)控產(chǎn)品大大方便了我們實(shí)時(shí)監(jiān)控應(yīng)用性能,并實(shí)現(xiàn)性能深度透視監(jiān)控。 但是這些監(jiān)控手段離真正能夠定位性能問題還是有一段距離,有

    2024年02月14日
    瀏覽(16)
  • 記1次生產(chǎn)環(huán)境java進(jìn)程內(nèi)存泄漏問題定位(使用Arthas)

    簡(jiǎn)介 | arthas,?Alibaba 開源的 Java 診斷工具,參照文檔安裝使用很簡(jiǎn)單,在線下載或者離線下載后解壓運(yùn)行,啟動(dòng)arthas-boot.jar,會(huì)自動(dòng)掃描jps進(jìn)程,根據(jù)序號(hào)選擇后進(jìn)入arthas界面: 常用的是dashboard,thread命令,dashboard命令能掃面當(dāng)前java進(jìn)程的全局信息,包括堆棧和線程信息,

    2024年02月22日
    瀏覽(31)
  • java性能安全:OOM問題排查、Arthas分析高CPU問題、防止Dos攻擊

    一、OOM問題 分析流程: 第一步:進(jìn)程分析,分析老年代回收次數(shù)和消耗時(shí)間 第二步:日志分析,找出OOM發(fā)生時(shí)間的日志來鎖定執(zhí)行方法,對(duì)應(yīng)的機(jī)器ip 第三步:找到對(duì)應(yīng)的ip機(jī)器查看,進(jìn)一步分析 第四步:下載的dump,使用mat分析堆內(nèi)存,找到堆占用率前3,查看堆指向 問題

    2024年02月03日
    瀏覽(45)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包