文章目录
- 二、命令列表
- 2.1 jvm相关命令
- 2.1.10 mbean(查看 Mbean 的信息)
- 举例1:列出所有 Mbean 的名称:
- 举例2:查看 Mbean 的元信息:
- 举例3:查看 mbean 属性信息:
- 举例4:mbean 的 name 支持通配符匹配:
- 举例5:通配符匹配特定的属性字段:
- 举例6:使用`-E`命令切换为正则匹配:
- 举例7:使用`-i`命令实时监控:
二、命令列表
2.1 jvm相关命令
2.1.10 mbean(查看 Mbean 的信息)
使用场景
:
mbean
命令是arthas
提供的一个重要命令,它可以用来查看和操作 Java MBeans(管理 Beans)。MBeans 是 Java Management Extensions (JMX) 的一部分,允许你监控和管理 Java 应用程序的运行时行为。
参数说明:
参数名称 | 参数说明 |
---|---|
name-pattern | 名称表达式匹配 |
attribute-pattern | 属性名表达式匹配 |
[m] | 查看元信息 |
[i:] | 刷新属性值的时间间隔 (ms) |
[n:] | 刷新属性值的次数 |
[E] | 开启正则表达式匹配,默认为通配符匹配。仅对属性名有效 |
举例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=ThreadingNAME 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=ThreadingOBJECT_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 *CountOBJECT_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|DaemonThreadCountOBJECT_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 *CountOBJECT_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