Arthas perfcounter(查看当前 JVM 的 Perf Counter 信息)

在这里插入图片描述

二、命令列表

2.1 jvm相关命令

2.1.13 perfcounter(查看当前 JVM 的 Perf Counter 信息)

举例1:查看当前 JVM 的 Perf Counter 信息

基本用法

perfcounter

[arthas@5462]$ perfcounter
 Name                                                                                         Value                                                                                                                                     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 java.ci.totalTime                                                                            155543519656                                                                                                                              
 java.cls.loadedClasses                                                                       19498                                                                                                                                     
 java.cls.sharedLoadedClasses                                                                 0                                                                                                                                         
 java.cls.sharedUnloadedClasses                                                               0                                                                                                                                         
 java.cls.unloadedClasses                                                                     290
 ...
举例2:可以用-d参数打印更多信息

基本用法

perfcounter -d

[arthas@5462]$ perfcounter -d
 Name                                          Variability     Units          Value                                                                                                                                                     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 java.ci.totalTime                             Monotonic       Ticks          155668149767                                                                                                                                              
 java.cls.loadedClasses                        Monotonic       Events         19499                                                                                                                                                     
 java.cls.sharedLoadedClasses                  Monotonic       Events         0                                                                                                                                                         
 java.cls.sharedUnloadedClasses                Monotonic       Events         0                                                                                                                                                         
 java.cls.unloadedClasses                      Monotonic       Events         290
 ...

本人其他相关文章链接

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、付费专栏及课程。

余额充值