@toc
使用场景
:
mbean
命令是arthas
提供的一个重要命令,它可以用来查看和操作 Java MBeans(管理 Beans)。MBeans 是 Java Management Extensions (JMX) 的一部分,允许你监控和管理 Java 应用程序的运行时行为。
参数说明:
参数名称 | 参数说明 |
---|---|
name-pattern | 名称表达式匹配 |
attribute-pattern | 属性名表达式匹配 |
m | 查看元信息 |
i: | 刷新属性值的时间间隔 (ms) |
n: | 刷新属性值的次数 |
E | 开启正则表达式匹配,默认为通配符匹配。仅对属性名有效 |
基本用法
: 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
基本用法
: 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
基本用法
: 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]$
基本用法
: 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
基本用法
: 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]$
-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]$
-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
2.Arthas dashboard(当前系统的实时数据面板)
3.Arthas thread(查看当前JVM的线程堆栈信息)
5.Arthas sysprop(查看和修改JVM的系统属性)
7.Arthas vmoption(查看和修改 JVM里诊断相关的option)
9.Arthas heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能)
10.Arthas logger(查看 logger 信息,更新 logger level)
14.Arthas perfcounter(查看当前 JVM 的 Perf Counter 信息)
15.Arthas vmtool(从 jvm 里查询对象,执行 forceGc)
17.Arthas mc(Memory Compiler/内存编译器 )
18.Arthas redefine(加载外部的.class文件,redefine到JVM里 )
19.Arthas classloader (查看 classloader 的继承树,urls,类加载信息)
23.Arthas stack (输出当前方法被调用的调用路径)
24.Arthas trace (方法内部调用路径,并输出方法路径上的每个节点上耗时)
25.Arthas tt(方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。