arthas使用



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

arthas使用

 

 

准備

此文章目的不是為了解釋什么,就是為了以后使用命令的時候有一個直觀的感受
https://github.com/alibaba/arthas
https://alibaba.github.io/arthas/advanced-use.html

啟動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里,然后在命令行下編繹啟動:

javac Demo.java
java Demo

進入arthas控制台

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

在這里插入圖片描述

基礎命令

  • 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里

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

在這里插入圖片描述

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

在這里插入圖片描述

monitor/watch/trace相關

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

options

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

管道

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

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

后台異步任務

當線上出現偶發的問題,比如需要watch某個條件,而這個條件一天可能才會出現一次時,異步后台任務就派上用場了,詳情請參考這里

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

Web Console

通過websocket連接Arthas。

其他特性


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM