<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          阿里開源的 Arthas 在應(yīng)用診斷上十分牛逼

          共 2399字,需瀏覽 5分鐘

           ·

          2021-03-20 11:13

          不點藍字,我們哪來故事?

          每天 11 點更新文章,餓了點外賣,點擊 ??《無門檻外賣優(yōu)惠券,每天免費領(lǐng)!》

          來源:jitwxs.cn/a64edcb1.html

          • 概述
          • 快速安裝
          • 快速入門
            • 4.1 attach 進程
            • 4.2 常用命令
          • 退出 Arthas

          早就聽聞阿里開源的 Arthas 在做 Java 應(yīng)用診斷上十分牛逼,身邊也有很多同事在使用,因此決定開一個坑,自己從零學習下這個工具的使用,本系列使用的版本是當前最新版 3.4.5。

          由于 Arthas 經(jīng)過這么長時間的發(fā)展,本身文檔、在線教程已經(jīng)十分健全了,同時還有第三方的 IDEA 插件、許多教學視頻去幫助我們?nèi)腴T使用,因此這個系列的文章定位是個人筆記,而并非教程,希望不要誤人子弟。

          概述

          https://arthas.aliyun.com

          當你遇到以下類似問題而束手無策時,Arthas可以幫助你解決:

          • 這個類從哪個 jar 包加載的?為什么會報各種類相關(guān)的 Exception?
          • 我改的代碼為什么沒有執(zhí)行到?難道是我沒 commit?分支搞錯了?
          • 遇到問題無法在線上 debug,難道只能通過加日志再重新發(fā)布嗎?
          • 線上遇到某個用戶的數(shù)據(jù)處理有問題,但線上同樣無法 debug,線下無法重現(xiàn)!
          • 是否有一個全局視角來查看系統(tǒng)的運行狀況?
          • 有什么辦法可以監(jiān)控到JVM的實時運行狀態(tài)?
          • 怎么快速定位應(yīng)用的熱點,生成火焰圖?

          使用 Arthas 需要 JDK 版本在 1.6 以上。

          圖片

          快速安裝

          https://arthas.aliyun.com/doc/install-detail.html

          Arthas 本身也是個 Java 進程,得益于 Java 跨平臺特性,所以我就直接在 Windows 上安裝了。

          (1)下載 Arthas 包

          curl -O https://arthas.aliyun.com/arthas-boot.jar

          (2)運行 Arthas

          java -jar arthas-boot.jar

          需要注意的是運行 Arthas 前至少保證系統(tǒng)正在運行一個 Java 進程,否則無法啟動,并會報錯:Can not find java process. Try to pass in command line.Please select an available pid。解決辦法就是跑一個 Java 應(yīng)用即可。

          如果需要卸載 Arthas 的話:

          在 Linux/Unix/Mac 平臺,刪除下面文件:

          rm -rf ~/.arthas/
          rm -rf ~/logs/arthas

          Windows平臺直接刪除user home下面的.arthas和logs/arthas目錄

          快速入門

          4.1 attach 進程

          這里我們使用 Arthas 官方提供的 demo 包,這樣我們就不需要自己編寫代碼了。將 demo 包下載下來并運行。

          curl -O https://arthas.aliyun.com/arthas-demo.jar
          java -jar arthas-demo.jar

          這個 demo 功能是死循環(huán)做質(zhì)因數(shù)分解,并記錄下無法分解的次數(shù),如下圖所示。

          圖片

          我們首先啟動 Arthas 并 attach 上該進程。

          圖片

          默認情況下,Arthas只listen 127.0.0.1,所以如果想從遠程連接,則可以使用 --target-ip參數(shù)指定 listen 的IP

          另外如果條件允許的話,在 attach 后也可以使用瀏覽器登錄,訪問:http://127.0.0.1:3658 即可。也可以填入 IP,遠程連接其他機器的 Arthas。

          4.2 常用命令

          4.2.1 dashboard

          https://arthas.aliyun.com/doc/dashboard.html

          使用 dastboard 命令可以查看 Java 進程信息(定時刷新),如需退出使用 q 即可。它由如下四個部分組成:

          • 第一部分是顯示JVM中運行的所有線程:所在線程組,優(yōu)先級,線程的狀態(tài),CPU的占用率,是否是后臺進程等
          • 第二部分顯示的JVM內(nèi)存的使用情況
          • 第三部分顯示的是 GC 相關(guān)的信息
          • 第四部分是操作系統(tǒng)的一些信息和Java版本號
          圖片

          4.2.2 thread

          https://arthas.aliyun.com/doc/thread.html

          使用 thread 命令可以查看當前所有的線程信息。

          并且可以通過追加 PID 的方式,查看具體某個線程的狀態(tài)。

          4.2.3 jad

          https://arthas.aliyun.com/doc/jad.html

          使用 jad 命令可以反編譯 class 文件。

          圖片

          4.2.2 watch

          https://arthas.aliyun.com/doc/watch.html

          watch 命令可以監(jiān)控方法的入?yún)⒊鰠ⅲ?/p>

          圖片

          退出 Arthas

          如果只是退出當前的連接,可以用quit或者exit命令。Attach到目標進程上的 Arthas 還會繼續(xù)運行,端口會保持開放,下次連接時可以直接連接上。

          如果想完全退出arthas,可以執(zhí)行stop命令。

          往期推薦

          Redis 低成本、高可用設(shè)計,牛逼!

          如何優(yōu)雅的統(tǒng)計代碼耗時?

          紅包免費送!

          知乎高贊:拼多多和國家電網(wǎng) Offer,選哪個?



          下方二維碼關(guān)注我

          技術(shù)草根堅持分享 編程,算法,架構(gòu)

          看完文章,餓了點外賣,點擊 ??《無門檻外賣優(yōu)惠券,每天免費領(lǐng)!》

          朋友,助攻一把!點個在看
          瀏覽 101
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  盛世大厦洗手间王经理视频 | 国产精品久久777777是什么意思 | 狠狠狠狠狠干 | 特级毛片www | 欧美三级全黄做爰大尺 |