Arthas使用教程——JVM常用命令

JVM相關命令

dashboard——當前系統的實時數據面板

顯示當前 tomcat 的實時信息。

使用方式:dashboard
在這里插入圖片描述

數據說明

ID: Java 級別的線程 ID,注意這個 ID 不能跟 jstack 中的 nativeID 一一對應。
NAME: 線程名
GROUP: 線程組名
PRIORITY: 線程優先級, 1~10 之間的數字,越大表示優先級越高
STATE: 線程的狀態
CPU%: 線程的 cpu 使用率。比如采樣間隔 1000ms,某個線程的增量 cpu 時間為 100ms,則 cpu 使用率=100/1000=10%
DELTA_TIME: 上次采樣之后線程運行增量 CPU 時間,數據格式為秒
TIME: 線程運行總 CPU 時間,數據格式為分:秒
INTERRUPTED: 線程當前的中斷位狀態
DAEMON: 是否是 daemon 線程

thread

查看當前線程信息,查看線程的堆棧。

參數說明

參數名稱參數說明
id線程 id
[n:]指定最忙的前 N 個線程并打印堆棧
[b]找出當前阻塞其他線程的線程
[i ]指定 cpu 使用率統計的采樣間隔,單位為毫秒,默認值為 200
[–all]顯示所有匹配的線程

舉例:thread -n 3
在這里插入圖片描述

jvm

查看當前 JVM 信息。

示例:

$ jvm
RUNTIME
--------------------------------------------------------------------------------------------------------------MACHINE-NAME                   37@ff267334bb65JVM-START-TIME                 2020-07-23 07:50:36MANAGEMENT-SPEC-VERSION        1.2SPEC-NAME                      Java Virtual Machine SpecificationSPEC-VENDOR                    Oracle CorporationSPEC-VERSION                   1.8VM-NAME                        Java HotSpot(TM) 64-Bit Server VMVM-VENDOR                      Oracle CorporationVM-VERSION                     25.201-b09INPUT-ARGUMENTS                []CLASS-PATH                     demo-arthas-spring-boot.jarBOOT-CLASS-PATH                /usr/lib/jvm/java-8-oracle/jre/lib/resources.jar:/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jsse.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jce.jar:/usr/lib/jvm/java-8-oracle/jre/lib/charsets.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfr.jar:/usr/lib/jvm/java-8-oracle/jre/classesLIBRARY-PATH                   /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib--------------------------------------------------------------------------------------------------------------CLASS-LOADING
--------------------------------------------------------------------------------------------------------------LOADED-CLASS-COUNT             7529TOTAL-LOADED-CLASS-COUNT       7529UNLOADED-CLASS-COUNT           0IS-VERBOSE                     false--------------------------------------------------------------------------------------------------------------COMPILATION
--------------------------------------------------------------------------------------------------------------NAME                           HotSpot 64-Bit Tiered CompilersTOTAL-COMPILE-TIME             14921(ms)--------------------------------------------------------------------------------------------------------------GARBAGE-COLLECTORS
--------------------------------------------------------------------------------------------------------------PS Scavenge                            name : PS Scavenge[count/time (ms)]                      collectionCount : 7collectionTime : 68PS MarkSweep                           name : PS MarkSweep[count/time (ms)]                      collectionCount : 1collectionTime : 47--------------------------------------------------------------------------------------------------------------MEMORY-MANAGERS
--------------------------------------------------------------------------------------------------------------CodeCacheManager               Code CacheMetaspace Manager              MetaspaceCompressed Class SpaceCopy                           Eden SpaceSurvivor SpaceMarkSweepCompact               Eden SpaceSurvivor SpaceTenured Gen--------------------------------------------------------------------------------------------------------------MEMORY
--------------------------------------------------------------------------------------------------------------HEAP-MEMORY-USAGE                      init : 268435456(256.0 MiB)[memory in bytes]                      used : 18039504(17.2 MiB)committed : 181403648(173.0 MiB)max : 3817865216(3.6 GiB)NO-HEAP-MEMORY-USAGE                   init : 2555904(2.4 MiB)[memory in bytes]                      used : 33926216(32.4 MiB)committed : 35176448(33.5 MiB)max : -1(-1 B)--------------------------------------------------------------------------------------------------------------OPERATING-SYSTEM
--------------------------------------------------------------------------------------------------------------OS                             LinuxARCH                           amd64PROCESSORS-COUNT               3LOAD-AVERAGE                   29.53VERSION                        4.15.0-52-generic--------------------------------------------------------------------------------------------------------------THREAD
--------------------------------------------------------------------------------------------------------------COUNT                          30DAEMON-COUNT                   24PEAK-COUNT                     31STARTED-COUNT                  36DEADLOCK-COUNT                 0--------------------------------------------------------------------------------------------------------------FILE-DESCRIPTOR
--------------------------------------------------------------------------------------------------------------MAX-FILE-DESCRIPTOR-COUNT      1048576OPEN-FILE-DESCRIPTOR-COUNT     100
Affect(row-cnt:0) cost in 88 ms.

THREAD 相關

COUNT: JVM 當前活躍的線程數
DAEMON-COUNT: JVM 當前活躍的守護線程數
PEAK-COUNT: 從 JVM 啟動開始曾經活著的最大線程數
STARTED-COUNT: 從 JVM 啟動開始總共啟動過的線程次數
DEADLOCK-COUNT: JVM 當前死鎖的線程數

文件描述符相關

MAX-FILE-DESCRIPTOR-COUNT:JVM 進程最大可以打開的文件描述符數
OPEN-FILE-DESCRIPTOR-COUNT:JVM 當前打開的文件描述符數

sysprop

查看當前 JVM 的系統屬性(System Property)。

使用示例:

$ syspropKEY                                                  VALUE
-------------------------------------------------------------------------------------------------------------------------------------java.runtime.name                                    Java(TM) SE Runtime Environmentsun.boot.library.path                                /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/libjava.vm.version                                      25.51-b03user.country.format                                  CNgopherProxySet                                       falsejava.vm.vendor                                       Oracle Corporationjava.vendor.url                                      http://java.oracle.com/path.separator                                       :java.vm.name                                         Java HotSpot(TM) 64-Bit Server VMfile.encoding.pkg                                    sun.iouser.country                                         USsun.java.launcher                                    SUN_STANDARDsun.os.patch.level                                   unknownjava.vm.specification.name                           Java Virtual Machine Specificationuser.dir                                             /private/var/tmpjava.runtime.version                                 1.8.0_51-b16java.awt.graphicsenv                                 sun.awt.CGraphicsEnvironmentjava.endorsed.dirs                                   /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/endorsedos.arch                                              x86_64java.io.tmpdir                                       /var/folders/2c/tbxwzs4s4sbcvh7frbcc7n000000gn/T/line.separatorjava.vm.specification.vendor                         Oracle Corporationos.name                                              Mac OS Xsun.jnu.encoding                                     UTF-8java.library.path                                    /Users/wangtao/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.sun.nio.ch.bugLeveljava.specification.name                              Java Platform API Specificationjava.class.version                                   52.0sun.management.compiler                              HotSpot 64-Bit Tiered Compilersos.version                                           10.12.6user.home                                            /Users/wangtaouser.timezone                                        Asia/Shanghaijava.awt.printerjob                                  sun.lwawt.macosx.CPrinterJobfile.encoding                                        UTF-8java.specification.version                           1.8user.name                                            wangtaojava.class.path                                      .java.vm.specification.version                        1.8sun.arch.data.model                                  64java.home                                            /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jresun.java.command                                     Testjava.specification.vendor                            Oracle Corporationuser.language                                        enawt.toolkit                                          sun.lwawt.macosx.LWCToolkitjava.vm.info                                         mixed modejava.version                                         1.8.0_51java.ext.dirs                                        /Users/wangtao/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/javasun.boot.class.path                                  /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/classesjava.vendor                                          Oracle Corporationfile.separator                                       /java.vendor.url.bug                                  http://bugreport.sun.com/bugreport/sun.cpu.endian                                       littlesun.io.unicode.encoding                              UnicodeBigsun.cpu.isalist

查詢指定配置

$ sysprop java.version
java.version=1.8.0_51

修改指定配置

$ sysprop user.country
user.country=US
$ sysprop user.country CN
Successfully changed the system property.
user.country=CN

sysenv

查看當前 JVM 的環境屬性(System Environment Variables)。

使用參考:

 USAGE:sysenv [-h] [env-name]SUMMARY:Display the system env.EXAMPLES:sysenvsysenv USERWIKI:https://arthas.aliyun.com/doc/sysenvOPTIONS:-h, --help                                                 this help<env-name>                                                 env name

使用示例

$ sysenvKEY                      VALUE
----------------------------------------------------------------------------------------------------------------------------PATH                     /Users/admin/.sdkman/candidates/visualvm/current/bin:/Users/admin/.sdkman/candidates/java/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Wireshark.app/Contents/MacOSSDKMAN_VERSION           5.7.3+337JAVA_HOME                /Users/admin/.sdkman/candidates/java/currentJAVA_MAIN_CLASS_65244    demo.MathGameTERM                     xterm-256colorLANG                     zh_CN.UTF-8AUTOJUMP_SOURCED         1COLORTERM                truecolorLOGNAME                  adminXPC_SERVICE_NAME         0PWD                      /Users/admin/code/ali/arthas/demoTERM_PROGRAM_VERSION     3.2.5_                        /Users/admin/.sdkman/candidates/java/current/bin/javaSHELL                    /bin/bashTERM_PROGRAM             iTerm.appSDKMAN_PLATFORM          DarwinUSER                     adminITERM_PROFILE            DefaultTMPDIR                   /var/folders/0r/k561bkk917gg972stqclbz9h0000gn/T/XPC_FLAGS                0x0TERM_SESSION_ID          w0t4p0:60BC264D-9649-42AC-A7E4-AF85B69F93F8__CF_USER_TEXT_ENCODING  0x1F5:0x19:0x34Apple_PubSub_Socket_Ren  /private/tmp/com.apple.launchd.DwmmjSQsll/RenderderCOLORFGBG                7;0HOME                     /Users/adminSHLVL                    1AUTOJUMP_ERROR_PATH      /Users/admin/Library/autojump/errors.log

vmoption

查看,更新 VM 診斷相關的參數。

查看所有option

[arthas@56963]$ vmoptionKEY                    VALUE                   ORIGIN                 WRITEABLE
---------------------------------------------------------------------------------------------HeapDumpBeforeFullGC   false                   DEFAULT                trueHeapDumpAfterFullGC    false                   DEFAULT                trueHeapDumpOnOutOfMemory  false                   DEFAULT                trueErrorHeapDumpPath                                   DEFAULT                trueCMSAbortablePrecleanW  100                     DEFAULT                trueaitMillisCMSWaitDuration        2000                    DEFAULT                trueCMSTriggerInterval     -1                      DEFAULT                truePrintGC                false                   DEFAULT                truePrintGCDetails         true                    MANAGEMENT             truePrintGCDateStamps      false                   DEFAULT                truePrintGCTimeStamps      false                   DEFAULT                truePrintGCID              false                   DEFAULT                truePrintClassHistogramBe  false                   DEFAULT                trueforeFullGCPrintClassHistogramAf  false                   DEFAULT                trueterFullGCPrintClassHistogram    false                   DEFAULT                trueMinHeapFreeRatio       0                       DEFAULT                trueMaxHeapFreeRatio       100                     DEFAULT                truePrintConcurrentLocks   false                   DEFAULT                true

更新指定的option

$ vmoption PrintGC true
Successfully updated the vm option.NAME     BEFORE-VALUE  AFTER-VALUE
------------------------------------PrintGC  false         true

getstatic

通過 getstatic 命令可以方便的查看類的靜態屬性。使用方法為getstatic class_name field_name

$ getstatic demo.MathGame random
field: random
@Random[serialVersionUID=@Long[3905348978240129619],seed=@AtomicLong[120955813885284],multiplier=@Long[25214903917],addend=@Long[11],mask=@Long[281474976710655],DOUBLE_UNIT=@Double[1.1102230246251565E-16],BadBound=@String[bound must be positive],BadRange=@String[bound must be greater than origin],BadSize=@String[size must be non-negative],seedUniquifier=@AtomicLong[-3282039941672302964],nextNextGaussian=@Double[0.0],haveNextNextGaussian=@Boolean[false],serialPersistentFields=@ObjectStreamField[][isEmpty=false;size=3],unsafe=@Unsafe[sun.misc.Unsafe@2eaa1027],seedOffset=@Long[24],
]

ognl

執行 ognl 表達式

參數說明

參數名稱參數說明
express執行的表達式
[c:]執行表達式的 ClassLoader 的 hashcode,默認值是 SystemClassLoader
[classLoaderClass:]指定執行表達式的 ClassLoader 的 class name
[x]結果對象的展開層次,默認值 1

調用靜態函數

$ ognl '@java.lang.System@out.println("hello")'
null

獲取靜態函數字段

$ ognl '@demo.MathGame@random'
@Random[serialVersionUID=@Long[3905348978240129619],seed=@AtomicLong[125451474443703],multiplier=@Long[25214903917],addend=@Long[11],mask=@Long[281474976710655],DOUBLE_UNIT=@Double[1.1102230246251565E-16],BadBound=@String[bound must be positive],BadRange=@String[bound must be greater than origin],BadSize=@String[size must be non-negative],seedUniquifier=@AtomicLong[-3282039941672302964],nextNextGaussian=@Double[0.0],haveNextNextGaussian=@Boolean[false],serialPersistentFields=@ObjectStreamField[][isEmpty=false;size=3],unsafe=@Unsafe[sun.misc.Unsafe@28ea5898],seedOffset=@Long[24],
]

來源

Arthas官網

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23749.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23749.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23749.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Rocky Linux安裝與基礎配置

目錄 背景與起源 主要特點 目標用戶 發展前景 下載 安裝 常用配置命令&#xff1a; 更換鏡像源 Rocky Linux 是一個開源的、由社區驅動的操作系統&#xff0c;旨在使用 Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源碼構建的下游二進制兼容發行版。以下是關于…

優思學院|一文看懂新版FMEA與FMEA的七大步驟

FMEA的起源 FMEA最早起源于20世紀40年代的美國軍工行業。當時&#xff0c;美國軍方為了提高武器系統的可靠性和安全性&#xff0c;開始使用FMEA來識別和評估潛在的故障模式及其影響。1949年&#xff0c;美國軍方發布了《軍用程序手冊》&#xff08;Military Procedures Handbo…

【Android面試八股文】在Java中重載和重寫是什么意思,區別是什么?

文章目錄 在Java中重載和重寫是什么意思,區別是什么?這道題想考察什么 ?考察的知識點考生應該如何回答重載(Overloading)重寫(Overriding)重載和重寫的區別在Java中重載和重寫是什么意思,區別是什么? 這道題想考察什么 ? Java基礎 考察的知識點 面向對象多態的基…

五種網絡IO模型

目錄 前言 文件描述符 為什么要多種io模型 同步IO 1.阻塞IO 2.非阻塞IO 3.多路復用IO&#xff08;事件驅動IO&#xff09; select: poll&#xff1a; epoll&#xff1a; 4.信號驅動IO 異步IO 區別 前言 文件描述符 首先我們了解一下文件描述符是什么&#xff1a;…

【Python報錯】已解決AttributeError: ‘method‘ object has no attribute ‘xxx‘

解決Python報錯&#xff1a;AttributeError: ‘method’ object has no attribute ‘xxx’ 在Python中&#xff0c;AttributeError通常表明你試圖訪問的對象沒有你請求的屬性或方法。如果你遇到了AttributeError: method object has no attribute xxx的錯誤&#xff0c;這通常意…

批量處理腳本,用于刪除指定目錄下3天前的備份文件和日志。

echo off echo 刪除3天前的備份文件和日志 set SrcDirD:\home set DaysAgo3 echo 準備刪除3天前的備份文件和日志 forfiles /p %SrcDir% /d -%DaysAgo% /c "cmd /c del /f /q /a path && rd /s /q path" echo 正在執行刪除&#xff0c;請稍等…… set SrcDi…

奇跡MU最強法師介紹

1、黑龍波 釋放出深淵中的黑龍之魂&#xff0c;對一定范圍內的目標造成中等程度傷害。 奧義&#xff1a; 怒哮——法師釋放出深淵龍魂的怨怒之力&#xff0c;在電閃雷鳴中中咆哮的龍魂將對敵人額外造成少量傷害。 魂陣——法師利用法陣控制黑龍之魂進行更大范圍的攻擊&…

如何使用SeaFile文件共享服務器結合內網穿透將家中電腦變成個人云盤

文章目錄 1. 前言2. SeaFile云盤設置2.1 Owncould的安裝環境設置2.2 SeaFile下載安裝2.3 SeaFile的配置 3. cpolar內網穿透3.1 Cpolar下載安裝3.2 Cpolar的注冊3.3 Cpolar云端設置3.4 Cpolar本地設置 4.公網訪問測試5.結語 1. 前言 本文主要為大家介紹&#xff0c;如何使用兩個…

opt 優化

【整理】深入理解拉格朗日乘子法&#xff08;Lagrange Multiplier) 和KKT條件 【amos注】&#xff1a;通俗易懂&#xff0c;讓人易于理解。

【Oracle篇】rman全庫異機恢復:從RAC環境到單機測試環境的轉移(第四篇,總共八篇)

&#x1f4ab;《博主介紹》&#xff1a;?又是一天沒白過&#xff0c;我是奈斯&#xff0c;DBA一名? &#x1f4ab;《擅長領域》&#xff1a;??擅長Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式數據倉庫)、Linux&#xff0c;也在擴展大數據方向的知識面??…

【TensorFlow深度學習】深度學習中的損失函數種類與適用場景

深度學習中的損失函數種類與適用場景 深度學習中的損失函數種類與適用場景&#xff1a;精確度量模型誤差的藝術一、均方誤差&#xff08;Mean Squared Error, MSE&#xff09;二、交叉熵損失&#xff08;Cross-Entropy&#xff09;三、Hinge損失&#xff08;Margin Loss&#x…

ROS RViz觀測傳感器數據

ROS RViz觀測傳感器數據 The Robot Visualization Tool 可視化工具 機器人傳感器采集到的數據都可以圖形化的顯示在這個軟件里&#xff0c;機器人運算處理的中間結果&#xff0c;和即將要執行的目標指示&#xff0c;比如機器人對空間中某個物體進行識別后&#xff0c;我們可以…

【Linux】Linux工具——make/Makefile

1.背景 會不會寫makefile&#xff0c;從一個側面說明了一個人是否具備完成大型工程的能力一個工程中的源文件不計數&#xff0c;其按類型、功能、模塊分別放在若干個目錄中&#xff0c;makefile定義了一系列的 規則來指定&#xff0c;哪些文件需要先編譯&#xff0c;哪些文件需…

Edge 工作區是什么?它都有哪些作用?

什么是工作區 Edge 工作區是什么&#xff1f;它是微軟 Edge 瀏覽器中的一個功能&#xff0c;在幫助用戶更好地組織和管理他們的瀏覽會話。通過工作區&#xff0c;用戶可以創建多個獨立的瀏覽環境&#xff0c;每個工作區內包含一組相關的標簽頁和瀏覽器設置。這使得用戶能夠根據…

SQL進階day9————聚合與分組

目錄 1聚合函數 1.1SQL類別高難度試卷得分的截斷平均值 1.2統計作答次數 1.3 得分不小于平均分的最低分 2 分組查詢 2.1平均活躍天數和月活人數 2.2 月總刷題數和日均刷題數 2.3未完成試卷數大于1的有效用戶 1聚合函數 1.1SQL類別高難度試卷得分的截斷平均值 我的錯誤…

開放式耳機十大品牌推薦!怎么選耳機看這六招!

隨著耳機廠家的瘋狂內卷&#xff0c;以前讓學生黨望其項背的千元耳機技術&#xff0c;紛紛被廠家下沉至百元耳機&#xff0c;是以2024年始&#xff0c;百元開放式耳機以新物種、價低格而爆火。看到身邊朋友爭相購買開放式耳機&#xff0c;既當耳飾&#xff0c;又當耳機&#xf…

分享:2024年(第12屆)“泰迪杯”數據挖掘挑戰賽成績公示

2024年&#xff08;第12屆&#xff09;“泰迪杯”數據挖掘挑戰賽歷時兩個月順利結束。競賽采用盲審&#xff08;屏蔽參賽者信息&#xff1b;評審專家只能評閱非本區域作品&#xff1b;三位評閱專家同時評閱同一作品&#xff0c;超限調整后再取平均分&#xff09;&#xff0c;答…

redis做為緩存,mysql的數據如何與redis進行同步呢?

讓我們一步步來實現如何讓MySQL數據庫的數據和Redis緩存保持同步。想象一下&#xff0c;MySQL是一個大倉庫&#xff0c;存放著所有重要的貨物&#xff08;數據&#xff09;&#xff0c;而Redis則像是一個快速取貨窗口&#xff0c;讓你能更快拿到常用的東西。為了讓兩者保持一致…

FC-135是一款受歡迎的32.768kHz晶振

KHZ中愛普生是以32.768KHZ最為出名的。32.768K晶振是一款數字電路板都要使用到的重要部件&#xff0c;有人比喻為電路板的冰發生器&#xff0c;也就是說心如果停止了跳動&#xff0c;那么電路板也將無法進行穩定的工作了&#xff0c;愛普生晶振FC-135是一款受歡迎的32.768KHz晶…

ALOS PALSAR 產品介紹

簡介 L1.0 產品 該產品由原始觀測數據&#xff08;0 級&#xff09;通過數據編輯&#xff08;如位重新調整和添加軌道信息&#xff09;生成。它是重建的、未經處理的信號數據&#xff0c;帶有輻射和幾何校正系數&#xff08;附加但未應用&#xff09;。 L1.1 產品 該產品由…