這篇文章給大家分享的是有關如何安裝使用Arthas的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
十多年的上蔡網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整上蔡建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“上蔡網(wǎng)站設計”,“上蔡網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
安裝:
wget https://alibaba.github.io/arthas/arthas-boot.jar java -jar arthas-boot.jar
linux 下直接執(zhí)行,window 下載文件后執(zhí)行。
執(zhí)行完成后,顯示當前 path 中指定的 JDK 中正在運行的 java 進程輸入相應序號,進入 sh 命令,表示已連接成功。
Arthas 命令初步使用,大概分為 5 類:
help——查看命令幫助信息
cat——打印文件內(nèi)容,和 linux 里的 cat 命令類似
pwd——返回當前的工作目錄,和 linux 命令類似
cls——清空當前屏幕區(qū)域
session——查看當前會話的信息
reset——重置增強類,將被 Arthas 增強過的類全部還原,Arthas 服務端關閉時會重置所有增強過的類
version——輸出當前目標 Java 進程所加載的 Arthas 版本號
history——打印命令歷史
quit——退出當前 Arthas 客戶端,其他 Arthas 客戶端不受影響
shutdown——關閉 Arthas 服務端,所有 Arthas 客戶端全部退出
keymap——Arthas快捷鍵列表及自定義快捷鍵
dashboard——當前系統(tǒng)的實時數(shù)據(jù)面板
thread——查看當前 JVM 的線程堆棧信息
jvm——查看當前 JVM 的信息
sysprop——查看和修改 JVM 的系統(tǒng)屬性
sysenv——查看 JVM 的環(huán)境變量
getstatic——查看類的靜態(tài)屬性
New! ognl——執(zhí)行 ognl 表達式
New! mbean——查看 Mbean 的信息
sc——查看 JVM 已加載的類信息
sm——查看已加載類的方法信息
jad——反編譯指定已加載類的源碼
mc——內(nèi)存編繹器,內(nèi)存編繹 .java 文件為 .class 文件
redefine——加載外部的 .class 文件,redefine 到 JVM 里
dump——dump 已加載類的 byte code 到特定目錄
classloader——查看 classloader 的繼承樹,urls,類加載信息,使用 classloader 去 getResource
請注意,這些命令,都通過字節(jié)碼增強技術來實現(xiàn)的,會在指定類的方法中插入一些切面來實現(xiàn)數(shù)據(jù)統(tǒng)計和觀測,因此在線上、預發(fā)使用時,請盡量明確需要觀測的類、方法以及條件,診斷結束要執(zhí)行 shutdown 或?qū)⒃鰪娺^的類執(zhí)行 reset 命令。
monitor——方法執(zhí)行監(jiān)控
watch——方法執(zhí)行數(shù)據(jù)觀測
trace——方法內(nèi)部調(diào)用路徑,并輸出方法路徑上的每個節(jié)點上耗時
stack——輸出當前方法被調(diào)用的調(diào)用路徑
tt——方法執(zhí)行數(shù)據(jù)的時空隧道,記錄下指定方法每次調(diào)用的入?yún)⒑头祷匦畔?,并能對這些不同的時間下調(diào)用進行觀測
options——查看或設置 Arthas 全局開關
trace 分析每個方法的具體執(zhí)行時間
通過圖示表明調(diào)用 MongoTemplate.executeFindMultiInternal() 方法時,最耗時的方法是在 doWith() 方法,總共執(zhí)行 10000 次,耗時 ==252.3064ms==,最少一次調(diào)用耗時 ==0.0132ms==,最大一次耗時 ==38.4329ms==,分析原因還是在于數(shù)據(jù)量太大,MongoTemplate 通過循環(huán)遍歷出結果在進行序列化。
jad 反編譯代碼工具
jad com.sankuai.inf.leaf.common.ZeroIDGen
watch 查看輸入?yún)?shù)與輸出參數(shù)
watch com.sankuai.inf.leaf.server.service.SegmentService getId '{params, target, returnObj}' -x 2
params 表示入?yún)ⅲ?strong>target 表示當前的類,returnObj 表示返回值。
stack 查看被調(diào)用的路徑(向上)
stack com.sankuai.inf.leaf.server.service.SegmentService getId
sc 查看 JVM 已加載的類信息
sc -d com.sankuai.inf.leaf.server.service.SegmentService getId
thread 分析死鎖
thread b
可以看出當前線程正在等待 ReentrantLock$NonfairSync@118f1fb4,而持有這個對象的線程又在等待當前線程釋放,從而形成死鎖!
thread 分析 CPU 占用
先放一張官方的總結大圖:
感謝各位的閱讀!關于“如何安裝使用Arthas”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!