Java之Arthas工具

1. Arthas簡介

Arthas(阿爾薩斯)是Alibaba開源的Java診斷工具∩钇。可以在線排查問題,不需要重啟JVM,動態(tài)跟蹤Java代碼洒疚,實時監(jiān)控JVM狀態(tài)等。
官方地址:https://alibaba.github.io/arthas/

1.1 Arthas主要解決的問題:
  • a. 這個類從哪個 jar 包加載的殃姓?為什么會報各種類相關(guān)的 Exception凡蚜?
  • b. 我改的代碼為什么沒有執(zhí)行到?難道是我沒 commit耻蛇?分支搞錯了踪蹬?
  • c.遇到問題無法在線上 debug胞此,難道只能通過加日志再重新發(fā)布嗎?
  • d.線上遇到某個用戶的數(shù)據(jù)處理有問題跃捣,但線上同樣無法 debug漱牵,線下無法重!
  • e.是否有一個全局視角來查看系統(tǒng)的運(yùn)行狀況疚漆?
  • f.有什么辦法可以監(jiān)控到JVM的實時運(yùn)行狀態(tài)酣胀?
  • g.怎么快速定位應(yīng)用的熱點(diǎn),生成火焰圖娶聘?
    備注:轉(zhuǎn)自官網(wǎng)
1.2 Arthas 基礎(chǔ)命令
  • help——查看命令幫助信息;
  • cls——清空當(dāng)前屏幕區(qū)域;
  • session——查看當(dāng)前會話的信息;
  • reset ——重置增強(qiáng)類闻镶,將被 Arthas 增強(qiáng)過的類全部還原,Arthas 服務(wù)端關(guān)閉時會重置所有增強(qiáng)過的類;
  • version——輸出當(dāng)前目標(biāo) Java 進(jìn)程所加載的 Arthas 版本號;
  • history——打印命令歷史;
  • quit——退出當(dāng)前 Arthas 客戶端趴荸,其他 Arthas 客戶端不受影響;
  • stop——關(guān)閉 Arthas 服務(wù)端儒溉,所有 Arthas 客戶端全部退出;
  • keymap ——Arthas快捷鍵列表及自定義快捷鍵;
    備注:轉(zhuǎn)自官網(wǎng)

2 Arthas 常用命令

2.1 dashboard

顯示當(dāng)前系統(tǒng)的實時數(shù)據(jù)面板,ctrl + c退出发钝。
主要顯示線程ID(和jstack的nativeID不一致)顿涣,線程名,線程優(yōu)先級酝豪,線程狀態(tài)涛碑,CPU消耗,運(yùn)行時間孵淘,是否daemon等蒲障。

2.2 thread

查看線程信息,如堆棧瘫证,CPU消耗等
thread 顯示所有線程的信息揉阎;
thread 34453 顯示線程34453的信息;
thread -n 5 顯示當(dāng)前最忙的5個線程打颖嘲啤毙籽;
thread -b 顯示堵塞其他線程的線程;
thread -n 5 -i 1000 顯示當(dāng)前最忙的5個線程打印毡庆,采樣時間間隔為1秒坑赡;
thread -state WAITING 顯示指定WAITING 狀態(tài)的線程。

2.3 jvm

顯示當(dāng)前JVM的信息么抗,比JVM自帶的功能強(qiáng)大毅否。

2.4 redefine

加載外部的.class,熱替換原來的JVM已經(jīng)加載的類蝇刀。
限制:
1.新Class不可增加field和method;
2.正在執(zhí)行的方法螟加,沒有退出不會生效;
3.被替換的舊類不可恢復(fù)。

2.5 jad

反編譯已經(jīng)加載類的源碼捆探,生成.java文件甸昏,支持類名正則表達(dá)式。
示例:
jad java.lang.String

2.6 sc

sc(Search Class)查看已經(jīng)被JVM加載的類信息徐许,支持類名正則表達(dá)式施蜜。
示例:
sc java.lang.String

2.7 sysprop

查看當(dāng)前JVM的系統(tǒng)屬性(System Property)。

2.8 sysenv

查看當(dāng)前JVM的環(huán)境屬性(System Environment Variables)雌隅。

2.9 vmoption

查看翻默,更新VM診斷相關(guān)的參數(shù)。

2.10 logger

查看logger信息恰起,更新logger level修械。

2.11 Mbean

查看 Mbean 的信息。

2.12 sm

“Search-Method” 的簡寫检盼,這個命令能搜索出所有已經(jīng)加載了 Class 信息的方法信息肯污。

2.12 dump

dump 已加載類的 bytecode 到特定目錄

2.13 heapdump

dump JVM堆, 類似jmap命令的heap dump功能。

2.14 classloader

查看JVM 中所有的classloader的信息統(tǒng)計出來吨枉,并可以展示繼承樹蹦渣,urls等。

2.15 mc

Memory Compiler/內(nèi)存編譯器貌亭,編譯.java文件生成.class柬唯。

2.16 mcmonitor

一個非實時返回命令,對匹配 class-pattern/method-pattern的類圃庭、方法的調(diào)用進(jìn)行監(jiān)控锄奢。

2.17 watch

方法執(zhí)行數(shù)據(jù)觀測,讓你能方便的觀察到指定方法的調(diào)用情況剧腻。能觀察到的范圍為:返回值拘央、拋出異常、入?yún)⑹樵冢ㄟ^編寫 OGNL 表達(dá)式進(jìn)行對應(yīng)變量的查看灰伟。

2.18 trace

方法內(nèi)部調(diào)用路徑,并輸出方法路徑上的每個節(jié)點(diǎn)上耗時蕊温。trace命令能主動搜索 class-pattern/method-pattern對應(yīng)的方法調(diào)用路徑袱箱,渲染和統(tǒng)計整個調(diào)用鏈路上的所有性能開銷和追蹤調(diào)用鏈路遏乔。

2.19 stack

輸出當(dāng)前方法被調(diào)用的調(diào)用路徑义矛。很多時候我們都知道一個方法被執(zhí)行,但這個方法被執(zhí)行的路徑非常多盟萨,或者你根本就不知道這個方法是從那里被執(zhí)行了凉翻,此時你需要的是 stack 命令。

2.20 tt

TimeTunnel 方法執(zhí)行數(shù)據(jù)的時空隧道捻激,記錄下指定方法每次調(diào)用的入?yún)⒑头祷匦畔⒅坪洌⒛軐@些不同的時間下調(diào)用進(jìn)行觀測前计。

2.21 profiler

profiler action [actionArg]

profiler 命令支持生成應(yīng)用熱點(diǎn)的火焰圖。本質(zhì)上是通過不斷的采樣垃杖,然后把收集到的采樣結(jié)果生成火焰圖男杈。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市调俘,隨后出現(xiàn)的幾起案子伶棒,更是在濱河造成了極大的恐慌,老刑警劉巖彩库,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肤无,死亡現(xiàn)場離奇詭異,居然都是意外死亡骇钦,警方通過查閱死者的電腦和手機(jī)宛渐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來眯搭,“玉大人窥翩,你說我怎么就攤上這事×巯桑” “怎么了鳍烁?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長繁扎。 經(jīng)常有香客問我幔荒,道長,這世上最難降的妖魔是什么梳玫? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任爹梁,我火速辦了婚禮,結(jié)果婚禮上提澎,老公的妹妹穿的比我還像新娘姚垃。我一直安慰自己,他們只是感情好盼忌,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布积糯。 她就那樣靜靜地躺著,像睡著了一般谦纱。 火紅的嫁衣襯著肌膚如雪看成。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天跨嘉,我揣著相機(jī)與錄音川慌,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛梦重,可吹牛的內(nèi)容都是我干的兑燥。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼琴拧,長吁一口氣:“原來是場噩夢啊……” “哼降瞳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蚓胸,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤力崇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赢织,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亮靴,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年于置,在試婚紗的時候發(fā)現(xiàn)自己被綠了茧吊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡八毯,死狀恐怖搓侄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情话速,我是刑警寧澤讶踪,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站泊交,受9級特大地震影響乳讥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜廓俭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一云石、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧研乒,春花似錦汹忠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至竿报,卻和暖如春铅乡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背仰楚。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工隆判, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人僧界。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓侨嘀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親捂襟。 傳聞我的和親對象是個殘疾皇子咬腕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容