Arthas mbean(查看 Mbean 的信息)
- 2025-05-14 黑龙江
本文字数:14327 字
阅读完需:约 47 分钟

@[toc]
二、命令列表
2.1 jvm 相关命令
2.1.10 mbean(查看 Mbean 的信息)
使用场景
:
mbean
命令是arthas
提供的一个重要命令,它可以用来查看和操作 Java MBeans(管理 Beans)。MBeans 是 Java Management Extensions (JMX) 的一部分,允许你监控和管理 Java 应用程序的运行时行为。
参数说明:
举例 1:列出所有 Mbean 的名称:
基本用法
:mbean
[arthas@11200]$ mbean
java.lang:type=MemoryPool,name=Metaspace
java.lang:type=MemoryPool,name=PS Old Gen
java.lang:type=GarbageCollector,name=PS Scavenge
java.lang:type=MemoryPool,name=PS Eden Space
JMImplementation:type=MBeanServerDelegate
java.lang:type=Runtime
java.lang:type=Threading
举例 2:查看 Mbean 的元信息:
基本用法
:mbean -m java.lang:type=Threading
[arthas@11200]$ mbean -m java.lang:type=Threading
NAME VALUE
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MBeanInfo
Info:
ObjectName java.lang:type=Threading
ClassName sun.management.ThreadImpl
Description Information on the management interface of the MBean
Info Descriptor:
immutableInfo true
interfaceClassName com.sun.management.ThreadMXBean
mxbean true
MBeanAttributeInfo
Attribute:
Name ThreadAllocatedMemoryEnabled
Description ThreadAllocatedMemoryEnabled
Readable true
Writable true
Is true
Type boolean
Attribute Descriptor:
openType javax.management.openmbean.SimpleType(name=java.lang.Boolean)
originalType boolean
MBeanAttributeInfo
Attribute:
Name ThreadAllocatedMemorySupported
Description ThreadAllocatedMemorySupported
Readable true
Writable false
Is true
Type boolean
举例 3:查看 mbean 属性信息:
基本用法
:mbean java.lang:type=Threading
[arthas@11200]$ mbean java.lang:type=Threading
OBJECT_NAME java.lang:type=Threading
----------------------------------------------------------------------------------------------------------------
NAME VALUE
----------------------------------------------------------------------------------------------------------------
ThreadAllocatedMemoryEnabled true
ThreadAllocatedMemorySupported true
AllThreadIds [36, 30, 29, 27, 26, 25, 24, 23, 22, 20, 19, 18, 17, 16, 15, 14, 4, 3, 2]
ThreadContentionMonitoringEnabled false
CurrentThreadCpuTime 625145
CurrentThreadUserTime 0
ThreadCpuTimeSupported true
ThreadCpuTimeEnabled true
ThreadCount 19
TotalStartedThreadCount 28
ThreadContentionMonitoringSupported true
CurrentThreadCpuTimeSupported true
ObjectMonitorUsageSupported true
SynchronizerUsageSupported true
PeakThreadCount 19
DaemonThreadCount 15
ObjectName java.lang:type=Threading
[arthas@11200]$
举例 4:mbean 的 name 支持通配符匹配:
基本用法
:mbean java.lang:type=Th*
[arthas@11200]$ mbean java.lang:type=Th*
OBJECT_NAME java.lang:type=Threading
----------------------------------------------------------------------------------------------------------------
NAME VALUE
----------------------------------------------------------------------------------------------------------------
ThreadAllocatedMemoryEnabled true
ThreadAllocatedMemorySupported true
AllThreadIds [37, 30, 29, 27, 26, 25, 24, 23, 22, 20, 19, 18, 17, 16, 15, 14, 4, 3, 2]
ThreadContentionMonitoringEnabled false
CurrentThreadCpuTime 1092010
CurrentThreadUserTime 0
ThreadCpuTimeSupported true
ThreadCpuTimeEnabled true
ThreadCount 19
TotalStartedThreadCount 29
ThreadContentionMonitoringSupported true
CurrentThreadCpuTimeSupported true
ObjectMonitorUsageSupported true
SynchronizerUsageSupported true
PeakThreadCount 19
DaemonThreadCount 15
ObjectName java.lang:type=Threading
[arthas@11200]$
注意
ObjectName 的匹配规则与正常的通配符存在差异,详细参见:javax.management.ObjectName
举例 5:通配符匹配特定的属性字段:
基本用法
:mbean java.lang:type=Threading *Count
[arthas@11200]$ mbean java.lang:type=Threading *Count
OBJECT_NAME java.lang:type=Threading
---------------------------------------------------
NAME VALUE
---------------------------------------------------
ThreadCount 19
TotalStartedThreadCount 30
PeakThreadCount 19
DaemonThreadCount 15
[arthas@11200]$
举例 6:使用-E
命令切换为正则匹配:
基本用法
:mbean -E java.lang:type=Threading PeakThreadCount|ThreadCount|DaemonThreadCount
[arthas@11200]$ mbean -E java.lang:type=Threading PeakThreadCount|ThreadCount|DaemonThreadCount
OBJECT_NAME java.lang:type=Threading
---------------------------------------------
NAME VALUE
---------------------------------------------
ThreadCount 19
PeakThreadCount 19
DaemonThreadCount 15
[arthas@11200]$
举例 7:使用-i
命令实时监控:
基本用法
:mbean -i 1000 java.lang:type=Threading *Count
[arthas@11200]$ mbean -i 1000 java.lang:type=Threading *Count
OBJECT_NAME java.lang:type=Threading
---------------------------------------------------
NAME VALUE
---------------------------------------------------
ThreadCount 19
TotalStartedThreadCount 32
PeakThreadCount 19
DaemonThreadCount 15
OBJECT_NAME java.lang:type=Threading
---------------------------------------------------
NAME VALUE
---------------------------------------------------
ThreadCount 19
TotalStartedThreadCount 32
PeakThreadCount 19
DaemonThreadCount 15
OBJECT_NAME java.lang:type=Threading
---------------------------------------------------
NAME VALUE
---------------------------------------------------
ThreadCount 19
TotalStartedThreadCount 32
PeakThreadCount 19
DaemonThreadCount 15
OBJECT_NAME java.lang:type=Threading
本人其他相关文章链接
1.Arthas 全攻略:让调试变得简单2.Arthas dashboard(当前系统的实时数据面板)3.Arthas thread(查看当前JVM的线程堆栈信息)4.Arthas jvm(查看当前JVM的信息)5.Arthas sysprop(查看和修改JVM的系统属性)6.Arthas sysenv(查看JVM的环境变量)7.Arthas vmoption(查看和修改 JVM里诊断相关的option)8.Arthas getstatic(查看类的静态属性 )9.Arthas heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能)10.Arthas logger(查看 logger 信息,更新 logger level)11.Arthas mbean(查看 Mbean 的信息)12.Arthas memory(查看 JVM 内存信息)13.Arthas ognl(执行ognl表达式)14.Arthas perfcounter(查看当前 JVM 的 Perf Counter 信息)15.Arthas vmtool(从 jvm 里查询对象,执行 forceGc)16.Arthas jad(字节码文件反编译成源代码 )17.Arthas mc(Memory Compiler/内存编译器 )18.Arthas redefine(加载外部的.class文件,redefine到JVM里 )19.Arthas classloader (查看 classloader 的继承树,urls,类加载信息)20.Arthas sc(查看JVM已加载的类信息 )21.Arthas sm(查看已加载类的方法信息 )22.Arthas monitor(方法执行监控)23.Arthas stack (输出当前方法被调用的调用路径)24.Arthas trace (方法内部调用路径,并输出方法路径上的每个节点上耗时)25.Arthas tt(方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测)26.Arthas watch (方法执行数据观测)27.Arthas profiler(使用async-profiler对应用采样,生成火焰图)

刘大猫
还未添加个人签名 2022-08-23 加入
还未添加个人简介
评论