arthas使用


博客原地址:https://blog.csdn.net/u013076044/article/details/83626202

arthas使用

 

 

準備

此文章目的不是爲了解釋什麼,就是爲了之後使用命令的時候有一個直觀的感覺
https://github.com/alibaba/arthas
https://alibaba.github.io/arthas/advanced-use.htmlhtml

啓動Demo

import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; public class Demo { static class Counter { private static AtomicInteger count = new AtomicInteger(0); public static void increment() { count.incrementAndGet(); } public static int value() { return count.get(); } } public static void main(String[] args) throws InterruptedException { while (true) { Counter.increment(); System.out.println("counter: " + Counter.value()); TimeUnit.SECONDS.sleep(1); } } }

 

把上面的內容保存到Demo.java裏,而後在命令行下編繹啓動:java

javac Demo.java
java Demo

進入arthas控制檯

打開Dos命令行窗口,在解壓的arthas目錄下執行as.bat pid
在這裏插入圖片描述git

在這裏插入圖片描述

基礎命令

  • help——查看命令幫助信息
  • cls——清空當前屏幕區域
  • session——查看當前會話的信息
  • reset——重置加強類,將被 Arthas 加強過的類所有還原,Arthas 服務端關閉時會重置全部加強過的類
  • version——輸出當前目標 Java 進程所加載的 Arthas 版本號
  • quit——退出當前 Arthas 客戶端,其餘 Arthas 客戶端不受影響
  • shutdown——關閉 Arthas 服務端,全部 Arthas 客戶端所有退出
  • keymap——Arthas快捷鍵列表及自定義快捷鍵

jvm相關

  • dashboard——當前系統的實時數據面板

在這裏插入圖片描述

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

image

  • jvm——查看當前 JVM 的信息

在這裏插入圖片描述

  • sysprop——查看和修改JVM的系統屬性

在這裏插入圖片描述

在這裏插入圖片描述

class/classloader相關

  • sc——查看JVM已加載的類信息

在這裏插入圖片描述

  • sm——查看已加載類的方法信息

在這裏插入圖片描述

  • dump——dump 已加載類的 byte code 到特定目錄

在這裏插入圖片描述

  • redefine——加載外部的.class文件,redefine到JVM裏github

  • jad——反編譯指定已加載類的源碼web

在這裏插入圖片描述

  • classloader——查看classloader的繼承樹,urls,類加載信息,使用classloader去getResource

在這裏插入圖片描述

monitor/watch/trace相關

請注意,這些命令,都經過字節碼加強技術來實現的,會在指定類的方法中插入一些切面來實現數據統計和觀測,所以在線上、預發使用時,請儘可能明確須要觀測的類、方法以及條件,診斷結束要執行 shutdown 或將加強過的類執行 reset 命令。apache

在這裏插入圖片描述

  • watch——方法執行數據觀測

在這裏插入圖片描述

  • trace——方法內部調用路徑,並輸出方法路徑上的每一個節點上耗時

在這裏插入圖片描述

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

在這裏插入圖片描述

  • tt——方法執行數據的時空隧道,記錄下指定方法每次調用的入參和返回信息,並能對這些不一樣的時間下調用進行觀測

options

  • options——查看或設置Arthas全局開關

管道

Arthas支持使用管道對上述命令的結果進行進一步的處理,如sm org.apache.log4j.Logger | grep <init>websocket

  • grep——搜索知足條件的結果
  • plaintext——將命令的結果去除顏色
  • wc——按行統計輸出結果

後臺異步任務

當線上出現偶發的問題,好比須要watch某個條件,而這個條件一天可能纔會出現一次時,異步後臺任務就派上用場了,詳情請參考這裏markdown

  • 使用 > 將結果重寫向到日誌文件,使用 & 指定命令是後臺運行,session斷開不影響任務執行(生命週期默認爲1天)
  • jobs——列出全部job
  • kill——強制終止任務
  • fg——將暫停的任務拉到前臺執行
  • bg——將暫停的任務放到後臺執行

Web Console

經過websocket鏈接Arthas。session

其餘特性

相關文章
相關標籤/搜索