亚洲精品欧美日韩-亚洲精品欧美一区二区三区-亚洲精品欧美综合-亚洲精品欧洲精品-亚洲精品欧洲一区二区三区

首頁
手機版
熱門搜索:
當前位置:電腦軟件編程開發調試編譯阿里巴巴阿爾薩斯開源Java診斷工具

阿里巴巴阿爾薩斯開源Java診斷工具 官方版V3.1.1

  • 大小:9.87MB
  • 語言:簡體中文
  • 類別:調試編譯
  • 類型:免費軟件
  • 授權:國產軟件
  • 時間:2019/09/07
  • 官網:http://www.taiyee.com.cn
  • 環境:Windows7, Windows10, WindowsAll

相關軟件

阿里巴巴Arthas是一款電腦監控診斷軟件,該工具可以對JAVA代碼進行性能分析,通過命令行來交互,開源免費使用,堪稱神器,功能非常強大。

軟件介紹

Arthas 是Alibaba開源的Java診斷工具,深受開發者喜愛。在線排查問題,無需重啟;動態跟蹤Java代碼;實時監控JVM狀態。

Arthas 支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同時提供豐富的 Tab 自動補全功能,進一步方便進行問題的定位和診斷。

軟件功能

Arthas圖片1

當你遇到以下類似問題而束手無策時,Arthas可以幫助你解決:

這個類從哪個 jar 包加載的?為什么會報各種類相關的 Exception?

我改的代碼為什么沒有執行到?難道是我沒 commit?分支搞錯了?

遇到問題無法在線上 debug,難道只能通過加日志再重新發布嗎?

線上遇到某個用戶的數據處理有問題,但線上同樣無法 debug,線下無法重現!

是否有一個全局視角來查看系統的運行狀況?

有什么辦法可以監控到JVM的實時運行狀態?

基礎命令

Arthas圖片2

help——查看命令幫助信息

cls——清空當前屏幕區域

session——查看當前會話的信息

reset——重置增強類,將被 Arthas 增強過的類全部還原,Arthas 服務端關閉時會重置所有增強過的類

version——輸出當前目標 Java 進程所加載的 Arthas 版本號

history——打印命令歷史

quit——退出當前 Arthas 客戶端,其他 Arthas 客戶端不受影響

shutdown——關閉 Arthas 服務端,所有 Arthas 客戶端全部退出

keymap——Arthas快捷鍵列表及自定義快捷鍵

安裝教程

阿里巴巴Arthas的安裝流程是非常簡單的,用戶可以通過Java直接自動安裝,不過如果安裝過舊版的用戶建議卸載原版本后重新手動安裝,不過也相當簡單,不過一些新手用戶還是不會操作,所以下面小編就帶來安裝教程,讓你輕松安裝這款工具:

下載本業壓縮包解壓后,在文件夾里有arthas-boot.jar,直接用java -jar的方式啟動:

java -jar arthas-boot.jar

打印幫助信息:

java -jar arthas-boot.jar -h

手動安裝方法:

解壓縮arthas的壓縮包

unzip arthas-packaging-bin.zip

安裝Arthas

安裝之前最好把所有老版本的Arthas全都刪掉

sudo su admin

rm -rf /home/admin/.arthas/lib/*

cd arthas

./install-local.sh

注意,這里根據你需要診斷的Java進程的所屬用戶進行切換

啟動Arthas

啟動之前,請確保老版本的Arthas已經shutdown.

./as.sh

使用指南

阿里巴巴Arthas的使用由命令行來輸入,同樣也使用命令行來交互溝通,所以對于命令的使用得當就能完美使用這款監控神器,下面小編就帶來詳細的阿里巴巴Arthas使用指南,讓你全面了解命令使用的作用和功能:

常用命令

dashboard

當前系統的實時數據面板

Arthas使用指南圖片1

參數解釋

ID: Java級別的線程ID,注意這個ID不能跟jstack中的nativeID一一對應

NAME: 線程名

GROUP: 線程組名

PRIORITY: 線程優先級, 1~10之間的數字,越大表示優先級越高

STATE: 線程的狀態

CPU%: 線程消耗的cpu占比,采樣100ms,將所有線程在這100ms內的cpu使用量求和,再算出每個線程的cpu使用占比。

TIME: 線程運行總時間

INTERRUPTE: 線程當前的中斷位狀態

thread

查看當前 JVM 的線程堆棧信息

Arthas使用指南圖片2

參數說明

id

線程id

-n

指定最忙的前N個線程并打印堆棧

b

找出當前阻塞其他線程的線程

-i

指定cpu占比統計的采樣間隔,單位為毫秒

PS: 這里的cpu統計的是,一段采樣間隔內,當前JVM里各個線程所占用的cpu時間占總cpu時間的百分比。其計算方法為: 首先進行一次采樣,獲得所有線程的cpu的使用時間(調用的是java.lang.management.ThreadMXBean#getThreadCpuTime這個接口),然后睡眠一段時間,默認100ms,可以通過-i參數指定,然后再采樣一次,最后得出這段時間內各個線程消耗的cpu時間情況,最后算出百分比。注意: 這個統計也會產生一定的開銷(JDK這個接口本身開銷比較大),因此會看到as的線程占用一定的百分比,為了降低統計自身的開銷帶來的影響,可以把采樣間隔拉長一些,比如5000毫秒。

sc

Arthas使用指南圖片3

參數說明

class-pattern

類名表達式匹配

-d

輸出當前類的詳細信息,包括這個類所加載的原始文件來源、類的聲明、加載的ClassLoader等詳細信息。如果一個類被多個ClassLoader所加載,則會出現多次

-E

開啟正則表達式匹配,默認為通配符匹配

-f

輸出當前類的成員變量信息(需要配合參數-d一起使用)

-x

指定輸出靜態變量時屬性的遍歷深度,默認為 0,即直接使用 toString 輸出

PS: class-pattern支持全限定名,如com.test.AAA,也支持com/test/AAA這樣的格式,這樣,我們從異常堆棧里面把類名拷貝過來的時候,不需要在手動把/替換為.啦,

sc 默認開啟了子類匹配功能,也就是說所有當前類的子類也會被搜索出來,想要精確的匹配,請打開options disable-sub-class true開關

sm

查看已加載類的方法信息

Arthas使用指南圖片4

參數說明

class-pattern

類名表達式匹配

method-pattern

方法名表達式匹配

-d

展示每個方法的詳細信息

-E

開啟正則表達式匹配,默認為通配符匹配

PS:查看已加載類的方法信息, “Search-Method” 的簡寫,這個命令能搜索出所有已經加載了 Class 信息的方法信息。

sm 命令只能看到由當前類所聲明 (declaring) 的方法,父類則無法看到

monitor

方法執行監控

Arthas使用指南圖片5

參數說明

class-pattern

類名表達式匹配

method-pattern

方法名表達式匹配

-c

統計周期,默認值為120秒

監控項

timestamp 時間戳

class java類

method 方法(構造方法、普通方法)

total 調用次數

success 成功次數

fail 失敗次數

rt 平均rt

fail-rate 失敗率

PS:方法執行監控, 對匹配 class-pattern/method-pattern的類、方法的調用進行監控。

trace

方法內部調用路徑,并輸出方法路徑上的每個節點上耗時

Arthas使用指南圖片6

參數說明

class-pattern

類名表達式匹配

method-pattern

方法名表達式匹配

condition-express

條件表達式

-n

命令執行次數

#cost

方法執行耗時

PS: 很多時候我們只想看到某個方法的rt大于某個時間之后的trace結果,例如trace *StringUtils isBlank '$cost>100’表示當執行時間超過100ms的時候,才會輸出trace的結果。

stack

輸出當前方法被調用的調用路徑

Arthas使用指南圖片7

輸出當前方法被調用的調用路徑, 很多時候我們都知道一個方法被執行,但這個方法被執行的路徑非常多,或者你根本就不知道這個方法是從那里被執行了,此時你需要的是 stack 命令。

參數說明

class-pattern

類名表達式匹配

method-pattern

方法名表達式匹配

condition-express

條件表達式

-n

執行次數限制

watch

方法執行數據觀測

Arthas使用指南圖片8

方法執行數據觀測, 讓你能方便的觀察到指定方法的調用情況。能觀察到的范圍為:返回值、拋出異常、入參,通過編寫 groovy 表達式進行對應變量的查看。

參數說明

class-pattern

類名表達式匹配

method-pattern

方法名表達式匹配

express

觀察表達式

condition-express

條件表達式

-b

在方法調用之前觀察(默認關閉)

-e

在方法異常之后觀察(默認關閉)

-s

在方法返回之后觀察(默認關閉)

-f

在方法結束之后(正常返回和異常返回)觀察 (默認開啟)

-x

指定輸出結果的屬性遍歷深度,默認為0

PS:這里重點要說明的是觀察表達式,觀察表達式的構成主要由 groovy 表達式組成,只要是一個合法的 groovy 表達式,都能被正常支持。

觀察的維度也比較多,主要體現在參數 advice 的數據結構上。Advice 參數最主要是封裝了通知節點的所有信息。

遠程連接方法

1. 遠程開啟調試功能!

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8739

2. ide 開戶遠程 debug!

Arthas遠程連接方法圖片

就ok 了!

接下來,就是debug時間,支持任意斷點,包括啟動時的斷點;

另外,對于臨時的代碼改動,可以進行即時生效!

需要注意的是,在遠程debug時,控制臺的輸出將是向遠程輸出,而非向本地輸出!

更新內容

trace支持打印line number #668

增加mbean命令 #666

webconsole支持傳遞ip/port參數 #488

修復jobs系統,重定向 #695 #694

修復jad 反編繹lambda類出錯的問題 #675

改進mc命令查找package/class的機制 #661

支持windows下中文目錄 #574 #335

每次執行都保存commnad history #9

dashboard命令更好展示Runtime信息 #696

redefine命令打印redefine歷史 #530

Upgrade netty to 4.1.36.Final #680

Upgrade termd to 1.1.7.4 #697

支持nobody用戶啟動 #572

jad命令支持method補全 #667

dump命令支持自動補全 #623

options命令支持自動補全 #612

在windows下支持診斷以service啟動的進程 #581

修復命令為空時 tab自動補全 #564

升級可能會遇到的問題:

Agent jar file does not exist #700

標簽: 性能監控 java開發 java診斷 開源軟件

開源軟件下載專題中是小編將市面上的開源項目軟件收集而來,因為有用戶咨詢免費開源軟件有哪些,所以小編將這些使用開源協議的軟件進行了整合,方便用戶尋找并使用,開源軟件對于個人來說是完全免費的,大多數可以商用,快下載體驗吧!

下載地址

阿里巴巴阿爾薩斯開源Java診斷工具 官方版V3.1.1

普通下載通道

網友評論

返回頂部