成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

推薦一款阿里開源的 Java 診斷工具,好用到爆!

Rango / 3420人閱讀

摘要:是什么鬼是一款阿里巴巴開源的線上診斷工具,功能非常強(qiáng)大,可以解決很多線上不方便解決的問題。診斷使用的是命令行交互模式,支持,操作系統(tǒng),命令還支持使用鍵對(duì)各種信息的自動(dòng)補(bǔ)全,診斷起來非常利索。顯示當(dāng)前系統(tǒng)的實(shí)時(shí)數(shù)據(jù)面板,按即可退出。

Arthas是什么鬼?

Arthas是一款阿里巴巴開源的 Java 線上診斷工具,功能非常強(qiáng)大,可以解決很多線上不方便解決的問題。

Arthas診斷使用的是命令行交互模式,支持JDK6+,Linux、Mac、Windows 操作系統(tǒng),命令還支持使用 tab 鍵對(duì)各種信息的自動(dòng)補(bǔ)全,診斷起來非常利索。

這是它的官方網(wǎng)站:

https://alibaba.github.io/art...

Github地址:

https://github.com/alibaba/ar...
Arthas能解決什么問題?

讓我們來看下 Arthas 的官方解釋。

當(dāng)你遇到以下類似問題而束手無策時(shí),Arthas可以幫助你解決:

1、這個(gè)類從哪個(gè) jar 包加載的?為什么會(huì)報(bào)各種類相關(guān)的 Exception?

2、我改的代碼為什么沒有執(zhí)行到?難道是我沒 commit?分支搞錯(cuò)了?

3、遇到問題無法在線上 debug,難道只能通過加日志再重新發(fā)布嗎?

4、線上遇到某個(gè)用戶的數(shù)據(jù)處理有問題,但線上同樣無法 debug,線下無法重現(xiàn)!

5、是否有一個(gè)全局視角來查看系統(tǒng)的運(yùn)行狀況?

6、有什么辦法可以監(jiān)控到JVM的實(shí)時(shí)運(yùn)行狀態(tài)?

看完是不是覺得太牛逼了?

特別是它可以在線反編譯類,可以不用加日志在線調(diào)試跟蹤問題代碼。

既然這么牛逼,肯定有不少公司在使用吧,下面列出了官方給出的使用登錄順序圖。

快速安裝

官方推薦使用 arthas-boot 進(jìn)行安裝,非常方便,以下是基于 Linux 系統(tǒng)環(huán)境進(jìn)行演示,一般解決線上問題也是基于 Linux 環(huán)境。

第一步:下載

在任何目錄下載 arthas-boot 這個(gè)包。

wget https://alibaba.github.io/art...
[root@VM_0_7_centos ~]# wget https://alibaba.github.io/arthas/arthas-boot.jar
--2019-07-30 14:48:31--  https://alibaba.github.io/arthas/arthas-boot.jar
Resolving alibaba.github.io (alibaba.github.io)... 185.199.108.153, 185.199.109.153, 185.199.110.153, ...
Connecting to alibaba.github.io (alibaba.github.io)|185.199.108.153|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 98637 (96K) [application/java-archive]
Saving to: ‘a(chǎn)rthas-boot.jar’

100%[==========================================================================================================>] 98,637      32.8KB/s   in 2.9s   

2019-07-30 14:48:36 (32.8 KB/s) - ‘a(chǎn)rthas-boot.jar’ saved [98637/98637]
第二步:運(yùn)行

使用 java -jar 命令執(zhí)行 arthas-boot 包。

java -jar arthas-boot.jar
[INFO] arthas-boot version: 3.1.1
[INFO] Found existing java process, please choose one and hit RETURN.
* [1]: 13062 spring-boot-best-practice-0.0.1-SNAPSHOT.jar
第三步:選擇進(jìn)程

運(yùn)行 arthas-boot 后,控制臺(tái)會(huì)顯示所有 Java 進(jìn)程,選擇一個(gè)你需要診斷的進(jìn)程。

如第二步所示,這里有只有一個(gè) Java 進(jìn)程,輸入序號(hào)1,回車,Arthas會(huì)附到目標(biāo)進(jìn)程上,并輸出日志:

[INFO] Start download arthas from remote server: https://maven.aliyun.com/repository/public/com/taobao/arthas/arthas-packaging/3.1.1/arthas-packaging-3.1.1-bin.zip
[INFO] Download arthas success.
[INFO] arthas home: /root/.arthas/lib/3.1.1/arthas
[INFO] Try to attach process 13062
[INFO] Attach process 13062 success.
[INFO] arthas-client connect 127.0.0.1 3658
  ,---.  ,------. ,--------.,--.  ,--.  ,---.   ,---.                           
 /  O   |  .--. ""--.  .--"|  "--"  | /  O   "   .-"                          
|  .-.  ||  "--"."   |  |   |  .--.  ||  .-.  |`.  `-.                          
|  | |  ||  |      |  |   |  |  |  ||  | |  |.-"    |                         
`--" `--"`--" "--"   `--"   `--"  `--"`--" `--"`-----"                          
                                                                                

wiki      https://alibaba.github.io/arthas                                      
tutorials https://alibaba.github.io/arthas/arthas-tutorials                     
version   3.1.1                                                                 
pid       13062                                                                 
time      2019-07-30 14:49:34

至此,安裝、啟動(dòng)完成。

更多其他安裝方式見:https://alibaba.github.io/art...

實(shí)戰(zhàn)使用

啟動(dòng)完成后,當(dāng)前光標(biāo)會(huì)進(jìn)入 arthas 的控制臺(tái),接受各種操作命令。

下面,棧長會(huì)做幾個(gè)常用命令的演示,讓大家對(duì)它有一個(gè)基本的認(rèn)識(shí)和快速上手的能力。

1、dashboard

顯示當(dāng)前系統(tǒng)的實(shí)時(shí)數(shù)據(jù)面板,按 ctrl+c 即可退出。

$ dashboard

2、thread

查看當(dāng)前 JVM 的線程堆棧信息。

thread id, 顯示指定線程的運(yùn)行堆棧:

$ thread 20

顯示當(dāng)前最忙的前N個(gè)線程并打印堆棧:

$ thread -n 3

3、sc

查看 JVM 已加載的類詳細(xì)信息。

$ sc -d *Test

4、sm

查看已加載類的方法信息。

$ sm -d cn.javastack.springbootbestpractice.SpringBootBestPracticeApplication main

5、jad

反編譯指定已加載類的源代碼。

$ jad cn.javastack.springbootbestpractice.SpringBootBestPracticeApplication

6、trace

顯示方法內(nèi)部調(diào)用路徑,非實(shí)時(shí)返回的命令并輸出方法路徑上的總耗時(shí),以及的每個(gè)節(jié)點(diǎn)上的詳細(xì)耗時(shí)。

$ trace -j cn.javastack.springbootbestpractice.web.JsonTest getUserInfo

-j:表示跳過 JDK 中的方法路徑。

7、monitor

對(duì)某個(gè)方法的調(diào)用進(jìn)行定時(shí)監(jiān)控。

$ monitor cn.javastack.springbootbestpractice.web.JsonTest getUserInfo -c 5

-c 5:表示每5秒統(tǒng)計(jì)一次,統(tǒng)計(jì)周期,默認(rèn)值為120秒。

監(jiān)控維度說明:

監(jiān)控項(xiàng) 說明
timestamp 時(shí)間戳
class 類名
method 方法名
total 調(diào)用次數(shù)
success 成功次數(shù)
fail 失敗次數(shù)
rt 平均響應(yīng)時(shí)間
fail-rate 失敗率
8、watch

觀測(cè)方法執(zhí)行數(shù)據(jù),能方便的觀察到指定方法的調(diào)用情況,如:返回值、拋出異常、入?yún)⒌取?/p>

$ watch cn.javastack.springbootbestpractice.web.JsonTest getUserInfo "{params, returnObj}" -x 2 -b

以上監(jiān)控的是一個(gè)方法的入?yún)⑶闆r,在方法執(zhí)行前監(jiān)控:-b,遍歷深度:-x 2。

9、quit/exit

退出當(dāng)前 Arthas。

這個(gè)命令僅退出當(dāng)前連接的客戶端,附到目標(biāo)進(jìn)程上的 Arthas 會(huì)繼續(xù)運(yùn)行,端口不會(huì)關(guān)閉,下次連接時(shí)可以直接連接使用。

10、shutdown

關(guān)閉 Arthas 服務(wù)端,退出所有 Arthas 客戶端。

以上演示了 10 個(gè)命令的基本使用,各種命令的使用詳情可以在命令帶 --help 進(jìn)行查閱。

更多其他命令請(qǐng)參考:

https://alibaba.github.io/art...
總結(jié)

總結(jié)下來,使用 Arthas 可以很方便的診斷一個(gè) Java 應(yīng)用程序,如:系統(tǒng)數(shù)據(jù)面板、JVM實(shí)時(shí)運(yùn)行狀態(tài)、類加載情況、監(jiān)控方法執(zhí)行情況、顯示方法執(zhí)行路徑等。

Arthas這些實(shí)用的功能確實(shí)可以幫助我們解決一些常見的線上問題,也能獨(dú)立于應(yīng)用程序代碼,但僅局限于在一個(gè) JVM 進(jìn)程內(nèi),如果是分布式系統(tǒng),Arthas就有點(diǎn)難了。

好了,今天的文章就到這了,你們也在用 Arthas 嗎?歡迎留言分享使用心得,如果覺得文章不錯(cuò),也可以分享給你的同學(xué)、同事們。

關(guān)注微信公眾號(hào):Java技術(shù)棧,在后臺(tái)回復(fù) “工具” 可以獲取棧長分享的往期工具列表,后面有好的 Java 開發(fā)工具,棧長也會(huì)第一時(shí)間在公眾號(hào)分享。

本文原創(chuàng)首發(fā)于微信公眾號(hào):Java技術(shù)棧(id:javastack),轉(zhuǎn)載請(qǐng)?jiān)瓨颖A舯拘畔ⅰ?/pre>

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75690.html

相關(guān)文章

  • IntelliJ IDEA 開發(fā)工具插件收藏

    摘要:推薦幾款比較好用的的插件,它能夠幫助我們更加快速的開發(fā),具體有以下分類快速開發(fā)樣式界面便捷工具快速開發(fā)功能介紹代碼自動(dòng)生成插件,大部分單表操作的代碼可自動(dòng)生成減少重復(fù)勞動(dòng)大幅提升效率開源地址功能介紹解析格式的數(shù)據(jù),然后快速的幫你生成對(duì)應(yīng)的類 推薦幾款比較好用的idea的插件,它能夠幫助我們更加快速的開發(fā),具體有以下分類: 快速開發(fā) 樣式界面 便捷工具 快速開發(fā) MyBatisCod...

    whidy 評(píng)論0 收藏0
  • 【深度】| 值得收藏阿里開源技術(shù)

    摘要:淘寶定制基于,是國內(nèi)第一個(gè)優(yōu)化定制且開源的服務(wù)器版虛擬機(jī)。數(shù)據(jù)庫開源數(shù)據(jù)庫是基于官方版本的一個(gè)分支,由阿里云數(shù)據(jù)庫團(tuán)隊(duì)維護(hù),目前也應(yīng)用于阿里巴巴集團(tuán)業(yè)務(wù)以及阿里云數(shù)據(jù)庫服務(wù)。淘寶服務(wù)器是由淘寶網(wǎng)發(fā)起的服務(wù)器項(xiàng)目。 Java JAVA 研發(fā)框架 SOFAStack SOFAStack(Scalable Open Financial Architecture Stack)是用于快速構(gòu)建金融...

    econi 評(píng)論0 收藏0
  • 重磅發(fā)布:阿里開源 OpenJDK 長期支持版本 Alibaba Dragonwell

    摘要:月日北京阿里云峰會(huì),阿里巴巴正式宣布對(duì)外開源長期支持版本。此次,阿里巴巴發(fā)布的預(yù)覽版本對(duì)應(yīng)的版本。同時(shí)對(duì)于阿里云,會(huì)針對(duì)的兩個(gè)版本和隨阿里云鏡像發(fā)布,免費(fèi)提供給阿里云客戶使用。年月,發(fā)布,根據(jù)阿里大數(shù)據(jù)場(chǎng)景的定制版發(fā)布。 3 月 21 日北京阿里云峰會(huì),阿里巴巴正式宣布對(duì)外開源 OpenJDK 長期支持版本 Alibaba Dragonwell。作為 Java 全球管理組織 Java ...

    haitiancoder 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<