推薦一個輕量的Java虛擬機(jī)監(jiān)控工具:Jvmm,開箱即用,支持豐富的功能
功能支持下載地址Jvmm是一個輕量的JVM監(jiān)控工具,提供有豐富的監(jiān)控功能:查看JVM信息(Runtime、內(nèi)存、CPU、線程、GC、ClassLoader等)以及OS信息(內(nèi)存、磁盤等),可生成火焰圖,代碼熱更,反編譯,提供多種服務(wù)模式(http、哨兵等)。適合用于服務(wù)健康監(jiān)控、線上調(diào)優(yōu)、排查問題、性能測試等場景。
github: https://github.com/tzfun/jvmm/releases/download/2.0.2/jvmm-2.0.2.zip
gitee: https://gitee.com/tzfun/jvmm/releases/download/2.0.2/jvmm-2.0.2.zip
項(xiàng)目地址:https://github.com/tzfun/jvmm
快速上手直接運(yùn)行
java -jar jvmm.jar
運(yùn)行后會提示你進(jìn)入什么模式,我們先將Jvmm attach到一個測試程序中,這里選擇 2
接下來會詢問你是否使用當(dāng)前目錄的配置文件,你可以選擇否然后自己指定一個配置文件路徑,這里我們先使用默認(rèn)的配置,選擇Y進(jìn)入下一步
接下來會提示你選擇目標(biāo)進(jìn)程,這里我們選擇提前啟動好的測試程序
最后attach成功之后會提示你它運(yùn)行在了什么端口,看到這樣的提示說明你已經(jīng)成功的將Jvmm Attach到你的目標(biāo)程序了,然后你就可以使用它的Client模式與你的程序通信
仍然是運(yùn)行java -jar jvmm.jar
進(jìn)入模式選擇,這一次我們選擇1 client模式
接下來會提示你需要連接的Jvmm目標(biāo)程序地址,前面我們attach的時(shí)候提示是運(yùn)行在5010端口,這里就填127.0.0.1:5010
然后會提示你目標(biāo)程序需不需要身份認(rèn)證,因?yàn)槟J(rèn)配置文件里沒有開啟認(rèn)證所以這里選擇否直接連接,如果提示下面的信息說明你就成功連接上了你的程序。
剩下的就是使用它內(nèi)置的命令進(jìn)行查看監(jiān)控?cái)?shù)據(jù)或者執(zhí)行一些操作
監(jiān)控功能>help info
info: -
Get information about the target server
-f
查看操作系統(tǒng)基礎(chǔ)信息查看操作系統(tǒng)CPU負(fù)載、內(nèi)存使用情況、磁盤占用情況查看類加載統(tǒng)計(jì)查看類加載器實(shí)例信息查看編譯統(tǒng)計(jì)信息查看垃圾收集器信息查看進(jìn)程信息因?yàn)閿?shù)據(jù)項(xiàng)太多就不進(jìn)行展示了,主要是進(jìn)程運(yùn)行情況、參數(shù)以及環(huán)境變量等信息
info -t process
查看JVM內(nèi)存信息查看JVM內(nèi)存管理器查看JVM內(nèi)存池查看線程情況查看線程堆棧生成火焰圖在Linux和Mac環(huán)境下可以生成火焰圖,支持較多的采樣事件,也可以針對于Java方法調(diào)用棧進(jìn)行采樣跟蹤,下面是使用方法
>help profiler
profiler: -
Get server sampling report. Only supported on MacOS and Linux.
-cSample counter type, optional values: samples, total. Default value: samples.
-e Sample event, optional values: cpu, alloc, lock, wall, itimer. Default value: cpu.
-f Output file path, supported file type: html, txt, jfr. If not filled, will output text content
-iThe time interval of the unit to collect samples, the unit is nanosecond. Default value: 10000000 ns.
-t
比如我直接執(zhí)行profiler -t 2
就可以針對于目標(biāo)進(jìn)程進(jìn)行CPU樣本采樣2秒,并生成報(bào)告
不過一般為了方便查看,生成可視化的火焰圖是更好的選擇
profiler -t 5 -f flame_graph.html
執(zhí)行后等待5秒就會生成這樣一份火焰圖報(bào)告
你可以選擇不同的采樣事件,下面給出一些示例:
wall 查看所有線程調(diào)用棧:
profiler -e wall -t 5 -f flame_graph.html
alloc 查看內(nèi)存分配
profiler -e alloc -t 5 -f flame_graph.html
查看方法調(diào)用棧
profiler -e java.net.ServerSocket.accept -t 10 -f flame_graph.html
反編譯代碼使用Jvmm也可以反編譯代碼,幫助你在運(yùn)行時(shí)查看源碼
>help jad
You can use the following command in client mode.
jad: -
Shutdown service.
-cRequired, the java class to be decompiled
-f Output file path
-mSpecify the method name in the decompiled class
你也可以指定某一個方法查看源碼
你可以遠(yuǎn)程執(zhí)行JVM Tools,執(zhí)行方法與原生調(diào)用幾乎一樣,只是通過Jvmm賦予了其遠(yuǎn)程調(diào)用的能力
你可以通過Client工具關(guān)閉正在運(yùn)行的Jvmm,改關(guān)閉操作只是針對于運(yùn)行的Jvmm Server,并不會影響你的程序正常運(yùn)行。
Jvmm的Client工具在平時(shí)的開發(fā)工作中足以滿足大部分需求,它還提供了非常多的其他功能,例如Java Agent支持、Http Server服務(wù)、哨兵模式、Core API
更多使用方法后續(xù)持續(xù)更新,創(chuàng)作不易,覺得不錯給個star~
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
本文標(biāo)題:一款輕量的JVM監(jiān)控工具——Jvmm-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://muchs.cn/article36/eegsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、關(guān)鍵詞優(yōu)化、用戶體驗(yàn)、云服務(wù)器、移動網(wǎng)站建設(shè)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容