一款輕量的JVM監(jiān)控工具——Jvmm-創(chuàng)新互聯(lián)

目錄
  • 關(guān)于Jvmm
    • 功能支持
    • 下載地址
  • 快速上手
  • 監(jiān)控功能
    • 查看操作系統(tǒng)基礎(chǔ)信息
    • 查看操作系統(tǒng)CPU負(fù)載、內(nèi)存使用情況、磁盤占用情況
    • 查看類加載統(tǒng)計(jì)
    • 查看類加載器實(shí)例信息
    • 查看編譯統(tǒng)計(jì)信息
    • 查看垃圾收集器信息
    • 查看進(jìn)程信息
    • 查看JVM內(nèi)存信息
    • 查看JVM內(nèi)存管理器
    • 查看JVM內(nèi)存池
    • 查看線程情況
    • 查看線程堆棧
  • 生成火焰圖
  • 反編譯代碼
  • 執(zhí)行JVM Tools
  • 關(guān)閉Jvmm
  • 拓展使用

創(chuàng)新互聯(lián)公司始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營理念,通過多達(dá)十年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的網(wǎng)絡(luò)營銷推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:成都葡萄架等企業(yè),備受客戶夸獎。關(guān)于Jvmm

在這里插入圖片描述

推薦一個輕量的Java虛擬機(jī)監(jiān)控工具:Jvmm,開箱即用,支持豐富的功能

功能支持
  • 支持監(jiān)控虛擬機(jī)gc統(tǒng)計(jì)信息、內(nèi)存使用情況、內(nèi)存池信息、類文件加載統(tǒng)計(jì)、線程堆棧
  • 支持監(jiān)控物理機(jī)基礎(chǔ)信息、內(nèi)存使用情況、磁盤使用情況、cpu負(fù)載
  • 支持獲取Java運(yùn)行時(shí)啟動參數(shù)、虛擬機(jī)參數(shù)、properties參數(shù)
  • 支持遠(yuǎn)程執(zhí)行JDK自帶工具,jps、jstat、jstack、jinfo、jmap、jcmd等
  • 支持生成火焰圖(采樣事件包括CPU、內(nèi)存分配、線程棧、Java方法調(diào)用棧等)
  • 支持代碼反編譯生成
  • 支持代碼熱更新(可指定ClassLoader)
  • 支持遠(yuǎn)程執(zhí)行GC
  • 提供客戶端交互工具,支持跨進(jìn)程attach和遠(yuǎn)程連接功能
  • 支持三種服務(wù)模式,足以應(yīng)對大部分監(jiān)控場景,可同時(shí)開啟多個服務(wù)
    • jvmm服務(wù):獨(dú)有通信協(xié)議,需使用jvmm客戶端遠(yuǎn)程連接調(diào)用
    • http服務(wù):提供Http接口,不限語言遠(yuǎn)程調(diào)用
    • 哨兵:定時(shí)采集數(shù)據(jù)并上報(bào)給訂閱者
  • 支持在自己項(xiàng)目中直接使用jvmm,只需引入server模塊
  • 支持基于core模塊進(jìn)行二次開發(fā)
  • 支持 JDK 8+
  • 支持 Linux/Mac/Windows

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

select mode
接下來會詢問你是否使用當(dāng)前目錄的配置文件,你可以選擇否然后自己指定一個配置文件路徑,這里我們先使用默認(rèn)的配置,選擇Y進(jìn)入下一步

接下來會提示你選擇目標(biāo)進(jìn)程,這里我們選擇提前啟動好的測試程序
選擇進(jìn)程
最后attach成功之后會提示你它運(yùn)行在了什么端口,看到這樣的提示說明你已經(jīng)成功的將Jvmm Attach到你的目標(biāo)程序了,然后你就可以使用它的Client模式與你的程序通信
Attach Success
仍然是運(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
 -fFile path (optional), output info to file.
 -t Info type (required *), optional values: system, systemDynamic, classloading, classloader, compilation, gc,
               process, memory, memoryManager, memoryPool, thread, threadStack.
查看操作系統(tǒng)基礎(chǔ)信息

操作系統(tǒng)

查看操作系統(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

在這里插入圖片描述
你也可以指定某一個方法查看源碼
在這里插入圖片描述

執(zhí)行JVM Tools

你可以遠(yuǎn)程執(zhí)行JVM Tools,執(zhí)行方法與原生調(diào)用幾乎一樣,只是通過Jvmm賦予了其遠(yuǎn)程調(diào)用的能力

在這里插入圖片描述
在這里插入圖片描述

關(guān)閉Jvmm

你可以通過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)

外貿(mào)網(wǎng)站建設(shè)