Arthas mbean(查看 Mbean 的信息)

在这里插入图片描述

二、命令列表

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=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对应用采样,生成火焰图)

### 如何使用 Arthas 查看 Java 线程信息 要使用 Arthas 工具查看 Java 应用程序的线程信息,可以通过以下方式实现: #### 启动 Arthas 并附加到目标 Java 进程 首先需要启动 Arthas,并将其附加到目标 Java 进程。可以使用如下命令完成此操作: ```bash java -jar arthas-boot.jar ``` 执行上述命令后,会显示当前系统中的所有 Java 进程列表,从中选择对应的目标进程编号即可完成连接[^1]。 #### 使用 `thread` 命令查看线程信息 一旦成功进入 Arthas 控制台,就可以利用其内置的 `thread` 命令来获取线程的相关信息。以下是常用的几种方法: - **查看所有线程的状态** 输入以下命令可列出当前进程中所有的线程及其状态: ```bash thread -n ``` 此处 `-n` 参数表示按 CPU 占用率降序排列线程,默认展示前 30 条记录。如果省略该参数,则默认只显示处于非 RUNNABLE 状态的线程[^4]。 - **查询特定 ID 的线程堆栈信息** 如果已知某个线程的 ID (TID),则可通过指定 TID 获取更详细的堆栈追踪数据: ```bash thread <tid> ``` 替换 `<tid>` 为实际的线程 ID 数值,这样可以获得关于这个具体线程更加详尽的信息,类似于 jstack 输出的内容[^2]。 - **查找长时间运行或者阻塞的线程** 对于排查性能问题非常有用的是识别那些持续时间较长的任务或是被锁定等待资源释放的情况。例如找出超过一定毫秒数仍在工作的线程: ```bash thread --blocked-timeout-ms 5000 ``` 上述例子设定阈值为 5 秒钟以上仍未解除堵塞状况的线程都会被列举出来。 需要注意的是,在某些特殊场景下可能无法正常 Attach 到目标进程上,这时应该检查是否有足够的权限以及查阅相应日志文件 (`~/logs/arthas`) 寻找错误原因[^5]。 ```python # 示例 Python 脚本仅作为说明用途,不参与功能逻辑 def example(): print("This is an illustrative python function.") example() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘大猫.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值