91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java的可視化監測工具怎么用

發布時間:2021-10-20 16:40:32 來源:億速云 閱讀:128 作者:柒染 欄目:大數據

java的可視化監測工具怎么用,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

一句話概括:jdk本身自帶的監控工具jconsole和jvisualvm可以更方便,更直觀地對java應用進行性能監測,下文為你講解如何使用它們。

1 引言

前面幾篇文章(見下文“相關閱讀”)已經對jdk的命令行工具進行了介紹,但它們使用起來相對還是不夠直觀,而且一般都需要在本機上使用,有沒有更方便,更直觀的方式來對java應用進行監測?其實,jdk本身已經提供了java監測的GUI工具,分別是jconsolejvisualvm,下面對這兩款工具的功能及使用進行描述。

2 jconsole使用

jconsole是jdk一個內置Java性能分析器,在JDK安裝目錄下的bin目錄,在windows下,可以從命令行(jconsole.exe)或直接雙擊jconsole.exe啟動運行。讀者有興趣可以參考jconsole工具的官方使用文檔:https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

2.1 兩種連接方式

jconsole啟動時,會提供兩種連接方式,分別是連接本地進程和連接遠程進程。它會直接列出本地java進程來選擇。若是需要監測遠程的java進程,則勾選遠程進程,然后輸入<hostname>:<port>。這需要遠程的java進程啟動時,設置JMX的遠程連接參數,否則是無法連接的,關于遠程連接的JMX技術,可以參考官方文章(https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html)參數分別是以下幾個:

# 需要監控的服務器IP
-Djava.rmi.server.hostname=192.168.222.10

# 提供監控的java進程端口
-Dcom.sun.management.jmxremote.port=9004 

# 指定后續的通訊端口,與上面一致
-Dcom.sun.management.jmxremote.rmi.port=9004 

# 不使用ssl登錄,若有安全需求,可設置
-Dcom.sun.management.jmxremote.ssl=false 

# 不驗證,若有安全需求,可設置
-Dcom.sun.management.jmxremote.authenticate=false

如下圖所示:

java的可視化監測工具怎么用

注意,由于不使用ssl,會提示"不安全連接",點擊它即可。

2.2 jconsole功能使用

啟動并連接java進程后,jconsole的界面是比較簡潔的,分為6個模塊:

  • 概述:對java進程的總體概覽,包括堆,線程數,類,CPU占用率的變化折線圖。

  • 內存:顯示堆及非堆的內存使用信息,類似jmap和jstat

  • 線程:顯示線程使用信息,類似jstack

  • 類:顯示類裝載信息

  • VM摘要:顯示JVM信息,類似jinfo

  • MBeans:顯示MBeans信息(用得比較少)

2.2.1 概覽

概覽主要顯示堆,線程數,類,CPU占用率的變化折線圖,基本上可以直接根據折線圖來查看應用概況。如果堆占用內存很高,活動線程數很多,CPU占用率很高,那就可以直接進入到相應的區域看詳細內容來查找原因了。另外,右擊對應的圖,可以把數據導出到csv文件來分析。如圖:

java的可視化監測工具怎么用

2.2.2 內存

內存是我們監測的重點區域,可以參看堆內存,非堆內存,內存池的狀況,GC次數和時間,可以手動進行GC查看內存變化。如下圖:

java的可視化監測工具怎么用

其中,圖的上方可以選擇查看哪個內存的變化(堆、非堆,old區,eden區,survivor區,metaspace區等),也可以手動執行GC查看變化情況。圖下方有顯示內存的大小及使用大小,GC的次數和使用時間,同時以柱狀圖的方式來顯示堆和非堆的變化。因此,對于有內存溢出,OOM這些問題,看這里的監測數據非常適合。

2.2.3 線程

線上應用,線程長時間停頓的主要原因主要有:等待外部資源(數據庫連接、網絡資源、設備資 源等)、死循環、鎖等待(活鎖和死鎖),這些都需要監測java應用的線程運行狀況,如下圖:

java的可視化監測工具怎么用

線程數變化情況及點擊某個線程查看運行狀態來分析,其中還可以點擊“檢測死鎖”功能來處理死鎖問題。

2.2.4 類

此功能主要用于查看加載的類總數,如果加載的類一直在增加,就得查看代碼是否有不斷產生類的代碼了。如下圖:

java的可視化監測工具怎么用

2.2.5 VM概要

當我們對java應用添加了啟動參數( JAVA_OPTS),若想在線上查看此應用的實際使用情況,參數是否生效,命令行工具我們是用jinfo,現在在這里可以直接看到,而且包括了系統信息,類信息,堆信息及相關的VM參數。如下圖:

java的可視化監測工具怎么用

3 jvisualvm使用

jconsole類似,jdk在bin目錄下還提供了jvisualvm工具,相對來說,jvisualvm更為強大,在windows下,可以從命令行(jvisualvm.exe)或直接雙擊jvisualvm.exe啟動運行。讀者有興趣可以參考jvisualvm工具的官方使用文檔:https://docs.oracle.com/javase/8/docs/technotes/guides/visualvm/index.html

3.1 兩種連接方式

jconsole一樣,jvisualvm可以監測本地的java進程,也可以監測遠程的java進程。本地進程直接選擇即可,遠程進程同樣需要java進程添加JMX啟動參數。

3.2 jvisualvm功能使用

jvisualvm的功能比較強大,主要包括以下幾項功能:

  • 顯示虛擬機進程以及進程的配置、環境信息(jps、jinfo)。

  • 監視應用程序的CPU、GC、堆、方法區(1.7及以前)、元空間(JDK1.8及以后)以及線程的信息,相當于jmap,jstat,jstack。

  • dump以及分析堆轉儲快照(jmap,jhat)。

  • 方法級的程序運行性能分析,找出被調用最多、運行時間最長的方法。

  • 離線程序快照:收集程序的運行時配置、線程dump、內存dump等信息建立一個快照

界面上的功能主要分為幾大模塊,分別是概述、監視、線程、抽樣器。

3.2.1 概述

概述相當是java命令行工具中的jpsjinfo,可以顯示進程以及進程的配置、系統屬性,啟動參數等,與jconsole的"VM概要"差不多。如下圖:

java的可視化監測工具怎么用

3.2.2 監視

此功能相當于jconsole的"概覽"功能,同樣是以圖形化的方式,顯示CPU、堆變化、線程數變化及加載類情況,但它有一個功能是可以遠程dump出堆轉儲快照(相當于jmap -dump:file=./heap.hprof PID),dump時會選擇文件存儲位置。

java的可視化監測工具怎么用

dump出的堆快照,我們可以手動把文件下載下來,然后使用它的“裝入快照”功能加載到jvisualvm(裝入時需要選擇文件類型是以"hprof"類型),進一步分析堆的內存情況。裝入后,會包含概要信息,類和實例占用內存情況,雙擊類還可以看到具體的實例數,若是發現某些類的實例數很多,或者占用的內存大小比較高,則可以知道問題所在。如下所示:

java的可視化監測工具怎么用

3.2.3 線程

此此功能相當于jconsole的"線程"功能,但更豐富,它把每個線程的運行狀態,運行時間都以圖形化的方式顯示,同時還可以進行遠程線程dump,這個功能,其實就是jstack -l功能,dump出來后,直接顯示到界面中。如下:

java的可視化監測工具怎么用

3.2.4 抽樣器

抽樣器是jvisualvm的獨有功能,可以對CPU和內存進行抽樣顯示,每隔一段時間把內存信息,線程信息,可以很方便的集中精力分析某一段時間的數據變化(可以以層級方式顯示細到方法的執行時間,類占用內存情況等),同時也提供執行GC、內存dump及線程dump功能。如下:

java的可視化監測工具怎么用

4 總結

有了jconsolejvisualvm兩款可視化工具,可以減少命令行的輸入,以更方便,更直觀的方式來監測java應用的內存、線程、CPU等信息,是處理java線上問題的好幫手。不過要注意一點的是,使用這兩款工具之前,我們還是需要對JVM,Java程序運行機制,線程等知識有一定的積累。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大洼县| 南澳县| 定襄县| 历史| 桐城市| 定州市| 安平县| 马关县| 栾城县| 瑞丽市| 三明市| 深水埗区| 德江县| 朔州市| 鄢陵县| 施甸县| 扎鲁特旗| 开平市| 乃东县| 刚察县| 东光县| 湾仔区| 阿合奇县| 江城| 普洱| 蓬溪县| 略阳县| 九寨沟县| 九江县| 尚志市| 甘泉县| 洞口县| 连江县| 娱乐| 嘉禾县| 双鸭山市| 策勒县| 林州市| 阿尔山市| 东方市| 高密市|