網(wǎng)站建設(shè)公司專(zhuān)業(yè)如何制作網(wǎng)站免費(fèi)建站
文章目錄
- 二、命令列表
- 2.3 monitor/watch/trace/stack/tt 相關(guān)
- 2.3.1 monitor(方法執(zhí)行監(jiān)控)
- 舉例1:監(jiān)控`demo.MathGame`類(lèi),并且每5S更新一次狀態(tài)。
二、命令列表
2.3 monitor/watch/trace/stack/tt 相關(guān)
使用場(chǎng)景
:
monitor
命令在 Arthas 中用于監(jiān)控方法的調(diào)用情況,能夠?qū)崟r(shí)查看某個(gè)方法的執(zhí)行時(shí)間、調(diào)用次數(shù)、成功率等性能指標(biāo)。它適用于以下場(chǎng)景:
- 性能調(diào)優(yōu):識(shí)別性能瓶頸,找到耗時(shí)較長(zhǎng)的方法。
- 故障排查:監(jiān)控特定方法的調(diào)用,觀察異?;蝈e(cuò)誤發(fā)生的頻率。
- 實(shí)時(shí)分析:動(dòng)態(tài)查看方法調(diào)用的趨勢(shì),獲取運(yùn)行時(shí)的數(shù)據(jù)。
通過(guò)
monitor
命令,可以幫助開(kāi)發(fā)者更好地理解應(yīng)用的運(yùn)行狀態(tài),從而進(jìn)行針對(duì)性的優(yōu)化。
注意:
請(qǐng)注意,這些命令,都通過(guò)字節(jié)碼增強(qiáng)技術(shù)來(lái)實(shí)現(xiàn)的,會(huì)在指定類(lèi)的方法中插入一些切面來(lái)實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計(jì)和觀測(cè),因此在線上、預(yù)發(fā)使用時(shí),請(qǐng)盡量明確需要觀測(cè)的類(lèi)、方法以及條件,診斷結(jié)束要執(zhí)行 stop 或?qū)⒃鰪?qiáng)過(guò)的類(lèi)執(zhí)行 reset 命令。
2.3.1 monitor(方法執(zhí)行監(jiān)控)
提示
方法執(zhí)行監(jiān)控。
對(duì)匹配 class-pattern
/method-pattern
/condition-express
的類(lèi)、方法的調(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)生太大影響,而且原則上,任何 Arthas 命令不會(huì)引起原有業(yè)務(wù)邏輯的改變。
監(jiān)控的維度說(shuō)明:
監(jiān)控項(xiàng) | 說(shuō)明 |
---|---|
timestamp | 時(shí)間戳 |
class | Java 類(lèi) |
method | 方法(構(gòu)造方法、普通方法) |
total | 調(diào)用次數(shù) |
success | 成功次數(shù) |
fail | 失敗次數(shù) |
rt | 平均 RT |
fail-rate | 失敗率 |
參數(shù)說(shuō)明:
方法擁有一個(gè)命名參數(shù) [c:]
,意思是統(tǒng)計(jì)周期(cycle of output),擁有一個(gè)整型的參數(shù)值
參數(shù)名稱(chēng) | 參數(shù)說(shuō)明 |
---|---|
class-pattern | 類(lèi)名表達(dá)式匹配 |
method-pattern | 方法名表達(dá)式匹配 |
condition-express | 條件表達(dá)式 |
[E] | 開(kāi)啟正則表達(dá)式匹配,默認(rèn)為通配符匹配 |
[c:] | 統(tǒng)計(jì)周期,默認(rèn)值為 120 秒 |
[b] | 在方法調(diào)用之前計(jì)算 condition-express |
[m <arg>] | 指定 Class 最大匹配數(shù)量,默認(rèn)值為 50。長(zhǎng)格式為[maxMatch <arg>] 。 |
舉例1:監(jiān)控demo.MathGame
類(lèi),并且每5S更新一次狀態(tài)。
基礎(chǔ)語(yǔ)法
:
monitor 全路徑類(lèi)名 方法名 -c 秒數(shù)
$ monitor -c 5 demo.MathGame primeFactors
Press Ctrl+C to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 94 ms.timestamp class method total success fail avg-rt(ms) fail-rate
-----------------------------------------------------------------------------------------------2018-12-03 19:06:38 demo.MathGame primeFactors 5 1 4 1.15 80.00%timestamp class method total success fail avg-rt(ms) fail-rate
-----------------------------------------------------------------------------------------------2018-12-03 19:06:43 demo.MathGame primeFactors 5 3 2 42.29 40.00%timestamp class method total success fail avg-rt(ms) fail-rate
-----------------------------------------------------------------------------------------------2018-12-03 19:06:48 demo.MathGame primeFactors 5 3 2 67.92 40.00%timestamp class method total success fail avg-rt(ms) fail-rate
-----------------------------------------------------------------------------------------------2018-12-03 19:06:53 demo.MathGame primeFactors 5 2 3 0.25 60.00%timestamp class method total success fail avg-rt(ms) fail-rate
-----------------------------------------------------------------------------------------------2018-12-03 19:06:58 demo.MathGame primeFactors 1 1 0 0.45 0.00%timestamp class method total success fail avg-rt(ms) fail-rate
-----------------------------------------------------------------------------------------------2018-12-03 19:07:03 demo.MathGame primeFactors 2 2 0 3182.72 0.00%