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