Arthas

Arthas

如果問性能測試中最難的是哪部分,相信很多人會說“性能調優”。確實是這樣,性能調優是一個非常複雜、技術含量很高的工作。涉及到的知識面很廣。以我多年從業經驗來看,在企業裏,大多數的性能調優都是由開發架構師來完成,涉及到數據庫的,可能需要DBA的介入。

而性能測試工程師在實際工作中,主要的職責是發現問題和定位問題,確定性能問題出現在哪部分,需要定位到具體函數、類、SQL,某些參數配置、某些硬件限制等。如果能做到這一點,那就是一個很稱職的性能測試工程師了。

那麼如何去定位問題呢?不能靠猜測和想象,這個時候需要藉助一些專業的工具來協助,以JAVA語言來說,如jdk自帶的jvisualvm等免費工具,以及商業化工具Jprofiler。

jvisualvm: 在這裏插入圖片描述
**Jprofiler **
在這裏插入圖片描述
這兩款工具在業界知名度也比較高,他們的優點是可以圖形界面上看到各維度的性能數據,使用者根據這些數據進行綜合分析,然後判斷哪裏出現了性能問題。

但是這兩款工具也有個缺點,都必須在服務端項目進程中配置相關的監控參數。然後工具通過遠程連接到項目進程,獲取相關的數據。這樣就會帶來一些不便,比如線上環境的網絡是隔離的,本地的監控工具根本連不上線上環境。並且類似於jprofiler這樣的商業工具,是需要付費的(可以破解,但是希望大家支持正版)

那麼有沒有一款工具不需要遠程連接,也不需要配置監控參數,同時也提供了豐富的性能監控數據呢?

今天跟大家介紹一款阿里巴巴開源的性能分析神器Arthas(阿爾薩斯)

官方網站:

https://alibaba.github.io/arthas/index.html

Arthas能爲你做什麼事情呢?我們先來看一下官網的介紹。
在這裏插入圖片描述
接下來,我們找個項目實際體驗一下Arthas。
一、Linux上啓動被監控的項目
先來看下Linux服務端部署的項目,一個JavaWeb項目,基於tomcat部署,服務端tomcat啓動後,通過瀏覽器訪問項目首頁,驗證項目是否可以正常訪問。
在這裏插入圖片描述
二、下載arthas工具
可以直接在Linux上通過命令下載

wget https://alibaba.github.io/arthas/arthas-boot.jar

也可以在瀏覽器直接訪問https://alibaba.github.io/arthas/arthas-boot.jar,等待下載成功後,上傳到Linux服務器上。
在這裏插入圖片描述
三、啓動arthas工具(需要配置好jdk)
執行命令: java -jar arthas-boot.jar

執行成功後,arthas提供了一種命令行方式的交互方式,arthas會檢測當前服務器上的Java進程,並將進程列表展示出來,用戶輸入對應的編號(1、2、3、4…)進行選擇,然後回車(見紅色框,進程[1]就是tomcat進程)。
在這裏插入圖片描述
第一次使用arthas需要自動下載一些依賴包,等待下載完成,就會進入到arthas提供的命令行界面。
在這裏插入圖片描述
四、常用的一些監控數據

  1. 1、整體dashboard數據

在arthas的命令行界面,輸入dashboard,會實時展示當前tomcat的多線程狀態、Jvm各區域、GC情況等信息
在這裏插入圖片描述

  1. 2、查看線程監控

常用參數

輸入thread會顯示所有線程的狀態信息
輸入thread -n 3會顯示當前最忙的3個線程,可以用來排查線程CPU消耗
輸入thread -b 會顯示當前處於BLOCKED狀態的線程,可以排查線程鎖的問題

在這裏插入圖片描述

  1. 3、jvm監控

輸入jvm,查看jvm詳細的性能數據
在這裏插入圖片描述

  1. 4、函數耗時監控

通常說一個接口性能不好,其實就是接口響應時間比較長造成的,具體代碼中哪個函數耗時比較長呢?可以使用trace功能來監控一下

trace -j cn.testfan.perf.beihe.pinter.http.CaseController time

解釋:

-j參數可以過濾掉jdk自身的函數

cn.testfan.perf.beihe.pinter.http.CaseController是接口所在的類

time是接口的入口函數
在這裏插入圖片描述
通過圈起來的部分可以看到,接口的入口函數time總耗時371ms

其中getDataFromDb函數耗時200ms

getDataFromRedis函數耗時100ms

getDataFromOuter函數耗時50ms

process函數耗時20ms

很明顯,最慢的函數已經找到了,接下里就要去對代碼進行進一步分析,然後再進行優化。

﹏﹏﹏﹏

上述幾個命令只是性能測工作中常用的一些操作,Arthas還有很多其他維度的監控數據,大家可以去官網看下用戶手冊學習更多操作。

通過對Arthas的初步使用可以看到,Arthas是一個功能非常強大的性能監控工具,而且使用非常方便,不需要做任何的參數配置,就可以直觀的獲取各種維度的性能數據。但是拿到這些原始監控數據後,你可能會發現再強大的監控工具也只能提供一些數據,具體問題還是靠人來進行分析,而這點纔是最關鍵的。

附上:arthas練習鏈接:https://alibaba.github.io/arthas/arthas-tutorials?language=cn
在這裏插入圖片描述
增加window版使用過程:
http://search.maven.org/classic/#search%7Cga%7C1%7Carthas
到此網站下載window版阿爾薩斯
在這裏插入圖片描述
下載bin.zip文件。
下載後解壓如下:
在這裏插入圖片描述
在第啓動項目,然後在任務管理器中找到項目pid
在這裏插入圖片描述
三個任意一個。
然後打開cmd並切換到as.bat所在的目錄下:
在這裏插入圖片描述
輸入:
as.bat 13684
就會自動在瀏覽器中打開arthas命令界面。
轉自:https://www.cnblogs.com/testfan2019/p/11038791.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章