摘要:是什么摘自的介紹大意為是阿里開源的一個(gè)診斷工具,可以幫助開發(fā)人員在不修改代碼或重啟服務(wù)器的情況下快速定位線上問題。聽起來(lái)確實(shí)是我們的程序員的一大福利。參考資料使用手冊(cè)
1. Arthas是什么?
摘自Arthas的Github介紹:
Arthas is a Java Diagnostic tool open sourced by Alibaba. Arthas allows developers to troubleshoot production issues for Java applications without modifying code or restarting servers.
大意為:Arthas是阿里開源的一個(gè)Java診斷工具,可以幫助開發(fā)人員在不修改代碼或重啟服務(wù)器的情況下快速定位線上問題。
聽起來(lái)確實(shí)是我們的程序員的一大福利。比如,我們就遇到一種情況,Spring Boot應(yīng)用中有個(gè)cron定時(shí)任務(wù)為每天凌晨1點(diǎn)啟動(dòng)執(zhí)行,但是測(cè)試起來(lái)很不方便,總不能每次修改cron時(shí)間來(lái)讓QC測(cè)試吧?這樣雖然是方便了測(cè)試妹子,但是卻徒增了我們開發(fā)時(shí)間和迭代次數(shù)?。。?!那Arthas到底是否能夠滿足我們需求呢?Go on...
2. 開啟Arthas之旅 2.1 安裝Arthas方式1:下載arthas-boot.jar包的方式
wget https://alibaba.github.io/arthas/arthas-boot.jar
此時(shí)在你當(dāng)前所在目錄下會(huì)有個(gè) arthas-boot.jar 包。
嘗試下arthas:
# 啟動(dòng)arthas,會(huì)進(jìn)入命令行交互狀態(tài) java -jar arthas-boot.jar # 查看arthas命令手冊(cè) java -jar arthas-boot.jar -h
方式2:通過as.sh安裝Arthas(強(qiáng)烈推薦)
# 該命令會(huì)下載 as.sh 到當(dāng)前目錄下 curl -L https://alibaba.github.io/arthas/install.sh | sh
嘗試下arthas:
# 啟動(dòng)arthas,會(huì)進(jìn)入命令行交互狀態(tài) ./as.sh # 查看arthas命令手冊(cè) ./as.sh -h2.2 開始使用
下面演示我們以 as.sh 為主。
首先我們啟動(dòng)arthas,會(huì)查看到我們當(dāng)前server上部署的應(yīng)用已經(jīng)被探測(cè)到,當(dāng)前我的server上只有一個(gè)應(yīng)用程序,只需輸入數(shù)字1,即可和該應(yīng)用進(jìn)行交互:
2.2.1 基礎(chǔ)命令通過 dashboard 命令可以實(shí)時(shí)查看應(yīng)用監(jiān)控?cái)?shù)據(jù)
通過 thread 命令查看應(yīng)用程序中所有線程情況
其中第一列為線程的ID。
通過 thread threadId 命令查看指定線程狀態(tài)信息
比如我們要查看線程ID為506的線程狀態(tài)信息:
當(dāng)然,因?yàn)槭敲钚薪换?,也是支持管道流式操作?/p>
通過 watch 命令去查看方法的參數(shù)、返回值和異常信息
通過 sc 命令查看類的信息
通過 sc yourFullClassName
通過 sc -d yourFullClassName* 去查看JVM加載的類信息
通過 sc *yourClassName* 去查看JVM加載的類信息
通過 sm 命令查看類的方法信息
case 1: sm java.math.RoundingMode
case 2: sm -d java.math.RoundingMode
case 3: sm java.math.RoundingMode
通過 jad yourFullClassName 去查看反編譯后的完整代碼信息
通過 jad --source-only yourFullClassName > /tmp/yourClassName.java 導(dǎo)出反編譯代碼到臨時(shí)目錄
通過 vim /tmp/yourClassName.java 進(jìn)行編輯修改代碼
通過 sc -d *yourClassName | grep classLoaderHash 獲取加載yourClassName的類加載器
通過 mc -c classLoaderHash /tmp/yourClassName.java -d /tmp 重新用相同類加載器重新編譯修改后的類(mc: Memory Compiler)
通過 redefine /tmp/yourFullClassName.class 重新加載新的被編譯的類文件
2.2.3 更多操作案例請(qǐng)參考官方手冊(cè),了解更多操作案例和用法。
參考資料Arthas
Arthas使用手冊(cè)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/74835.html
摘要:是什么鬼是一款阿里巴巴開源的線上診斷工具,功能非常強(qiáng)大,可以解決很多線上不方便解決的問題。診斷使用的是命令行交互模式,支持,操作系統(tǒng),命令還支持使用鍵對(duì)各種信息的自動(dòng)補(bǔ)全,診斷起來(lái)非常利索。顯示當(dāng)前系統(tǒng)的實(shí)時(shí)數(shù)據(jù)面板,按即可退出。 Arthas是什么鬼? Arthas是一款阿里巴巴開源的 Java 線上診斷工具,功能非常強(qiáng)大,可以解決很多線上不方便解決的問題。 Arthas診斷使用的是...
摘要:診斷工具簡(jiǎn)介是阿里開源的一個(gè)線上診斷工具,發(fā)現(xiàn)阿里還是挺喜歡開源一些技術(shù)的,造福人類。昨天試用了一下,發(fā)現(xiàn)真是強(qiáng)大,解決了我工作兩年的很多困擾,有點(diǎn)相見恨晚的感覺。每秒統(tǒng)計(jì)方法的調(diào)用次數(shù),成功失敗次數(shù)和平均響應(yīng)時(shí)間等。具體使用請(qǐng)見。 Java診斷工具Arthas 1. Arthas簡(jiǎn)介 Arthas是阿里開源的一個(gè)線上java診斷工具,發(fā)現(xiàn)阿里還是挺喜歡開源一些技術(shù)的,造福人類。昨天試...
摘要:阿里的開源診斷工具可以在線調(diào)整等級(jí)查找當(dāng)前類的用獲取單獨(dú)設(shè)置的全局設(shè)置 阿里的開源Java診斷工具Arthas可以在線調(diào)整log等級(jí) 查找當(dāng)前類的classloader hashcode sc -d com.example.demo.arthas.user.UserController | grep classLoaderHash 用OGNL獲取logger ognl -c 1be6f...
摘要:注意這個(gè)統(tǒng)計(jì)也會(huì)產(chǎn)生一定的開銷這個(gè)接口本身開銷比較大,因此會(huì)看到的線程占用一定的百分比,為了降低統(tǒng)計(jì)自身的開銷帶來(lái)的影響,可以把采樣間隔拉長(zhǎng)一些,比如毫秒。 Arthas 能為你做什么? 這個(gè)類從哪個(gè) jar 包加載的?為什么會(huì)報(bào)各種類相關(guān)的 Exception? 我改的代碼為什么沒有執(zhí)行到?難道是我沒 commit?分支搞錯(cuò)了? 遇到問題無(wú)法在預(yù)發(fā) debug 一下,難道只能通過加...
摘要:淘寶定制基于,是國(guó)內(nèi)第一個(gè)優(yōu)化定制且開源的服務(wù)器版虛擬機(jī)。數(shù)據(jù)庫(kù)開源數(shù)據(jù)庫(kù)是基于官方版本的一個(gè)分支,由阿里云數(shù)據(jù)庫(kù)團(tuán)隊(duì)維護(hù),目前也應(yīng)用于阿里巴巴集團(tuán)業(yè)務(wù)以及阿里云數(shù)據(jù)庫(kù)服務(wù)。淘寶服務(wù)器是由淘寶網(wǎng)發(fā)起的服務(wù)器項(xiàng)目。 Java JAVA 研發(fā)框架 SOFAStack SOFAStack(Scalable Open Financial Architecture Stack)是用于快速構(gòu)建金融...
閱讀 1936·2021-11-12 10:36
閱讀 2422·2021-09-01 10:29
閱讀 2437·2019-08-30 15:56
閱讀 1086·2019-08-30 12:56
閱讀 2400·2019-08-26 13:58
閱讀 2385·2019-08-23 18:38
閱讀 1583·2019-08-23 18:32
閱讀 2170·2019-08-23 16:53