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.mzph.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…

【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;这通常意…

奇迹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;如何使用两个…

【Oracle篇】rman全库异机恢复:从RAC环境到单机测试环境的转移(第四篇,总共八篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#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;答…

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 产品 该产品由…

Java Web学习笔记13——JSON

JavaScript自定义对象 定义格式&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Js-对…

【docker】 /bin/sh: ./mvnw: No such file or directory解决方案.dockerignore被忽略

报错如下&#xff1a;解决方案很简单&#xff0c;但是容易让大家忽视的问题。 > CACHED [stage-1 2/4] WORKDIR /work/ …

用互斥锁解决缓存击穿

我先说一下正常的业务流程&#xff1a;需要查询店铺数据&#xff0c;我们会先从redis中查询&#xff0c;判断是否能命中&#xff0c;若命中说明redis中有需要的数据就直接返回&#xff1b;没有命中就需要去mysql数据库查询&#xff0c;在数据库中查到了就返回数据并把该数据存入…

Unity DOTS技术(三)JobSystem+Burst+批处理

文章目录 一.传统方式二.使用JobSystemBurst方式三.批处理 在之前的例子中我们都中用的单线程与传统的编译器,下面我们试着使用JobSystem与打找Burst编译器来对比一下性能的差异. 一.传统方式 1.首先用传统方式创建10000个方块并让基每帧旋转 2.我们可以看到他的帧率是40 …

RBAC 模型梳理

1. RBAC 模型是什么 RBAC&#xff08;Role-Based Access Control&#xff09;即&#xff1a;基于角色的权限控制。通过角色关联用户&#xff0c;角色关联权限的方式间接赋予用户权限。 RBAC 模型由 4 个基础模型组成&#xff1a; 基本模型 RBAC0&#xff08;Core RBAC&#x…

面向AI应用开发实战分享 - 基础篇

“前端转AI&#xff0c;第一讲来了” 引言 如果你是一名前端开发&#xff0c;同时又对AI开发很感兴趣&#xff0c;那么恭喜你&#xff0c;机会来了。 如果不是也没关系&#xff0c;同样能帮大家了解AI应用的开发思路。 本文将带大家从面向AI开发的基础知识开始&#xff0c;再…

AlaSQL.js:用SQL解锁JavaScript数据操作的魔法

简介 先附上 github 地址 https://github.com/AlaSQL/alasql AlaSQL.js - JavaScript SQL database for browser and Node.js. Handles both traditional relational tables and nested JSON data (NoSQL). Export, store, and import data from localStorage, IndexedDB, or …