专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

学会使用ARTHAS(二)

前言

现在有很多文章都在写ARTHAS,其实笔者也看着文章各种学习。本篇文章,大家可以认为是笔者的“自私贴”,为了逼自己学会ARTHAS,强行进行了博客搬运。

ARTHAS 进阶

  • reset:重置增强过得类,shutdown会重置所有的类。
reset 

  • thread:查看线程信息。

CPU占比: 进行一次采样,获得所有线程的cpu的使用时间(调用的是java.lang.management.ThreadMXBean#getThreadCpuTime这个接口),然后睡眠一段时间,默认100ms,可以通过-i参数指定,然后再采样一次,最后得出这段时间内各个线程消耗的cpu时间情况,最后算出百分比。 thread -n {int}:指定最忙的前N个线程并打印堆栈 thread:打印所有线程信息 thread {threadId}:特定线程信息 thread -b:找出阻塞其他线程的线程(目前仅支持synchronized,不支持Lockthread -n 3 -i 1000:指定采样时间(单位为毫秒)

  • jvm:查看JVM信息,主要信息如下。有个概念需要说明下,文件描述符:内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。
RUNTIME
--------------------------------------------------------------------------------
 MACHINE-NAME           417@tjtx145-53-78.58os.org
 JVM-START-TIME         2019-08-08 12:10:28
 MANAGEMENT-SPEC-VERSI  1.2
 ON
 SPEC-NAME              Java Virtual Machine Specification
 SPEC-VENDOR            Oracle Corporation
 SPEC-VERSION           1.7
 VM-NAME                Java HotSpot(TM) 64-Bit Server VM
 VM-VENDOR              Oracle Corporation
 VM-VERSION             24.80-b11
 INPUT-ARGUMENTS        -Xms2g 启动参数
                        -Xmx2g
                        -Xmn1g
                        -Xss1024K
                        -XX:PermSize=512m
                        -XX:MaxPermSize=512m

---------------------------------------------------------------------------
 THREAD
---------------------------------------------------------------------------
 COUNT                  90 当前活跃线程数
 DAEMON-COUNT           58 JVM当前活跃的守护线程数
 PEAK-COUNT             245 从JVM启动开始曾经活着的最大线程数
 STARTED-COUNT          625 从JVM启动开始总共启动过的线程次数
 DEADLOCK-COUNT         0 当前死锁的线程数

---------------------------------------------------------------------------
 FILE-DESCRIPTOR
---------------------------------------------------------------------------
 MAX-FILE-DESCRIPTOR-C  1048576 JVM进程最大可以打开的文件描述符数
 OUNT
 OPEN-FILE-DESCRIPTOR-  809 JVM当前打开的文件描述符数
 COUNT

  • getstatic查看类的静态属性。
getstatic {packageName}.{className} {staticFieldName}

@SingleJedisClient[
    logger=@Log4jLoggerAdapter[org.slf4j.impl.Log4jLoggerAdapter(com.test.redis.client.SingleJedisClient)],
    jedisPool=@JedisPool[redis.clients.jedis.JedisPool@1c28c989],
]

  • sc查看已加载的类信息。

sc {packageName} 模糊查询 sc -d {packageName}.{className} 详细信息

class-info        com.zacpark.test.EnterpriseTask
 code-source       /opt/service/zacpark/test-1.0.0.jar
 name              com.zacpark.test.EnterpriseTask
 isInterface       false
 isAnnotation      false
 isEnum            false
 isAnonymousClass  false
 isArray           false
 isLocalClass      false
 isMemberClass     false
 isPrimitive       false
 isSynthetic       false
 simple-name       EnterpriseTask
 modifier          public
 annotation
 interfaces
 super-class       +-java.lang.Object
 class-loader      +-sun.misc.Launcher$AppClassLoader@b2929b2
                     +-sun.misc.Launcher$ExtClassLoader@3b706ad7
 classLoaderHash   b2929b2 

sc -d -f {packageName}.{className} 除了详细信息,还有Fields信息。

  • sm查看已加载类的方法信息

sm {packageName}.{className} 查看已加载类的所有方法 sm -d {packageName}.{className} 查看每个方法的详细信息

declaring-class  com.zacpark.test.task.CheckRegInfoTask
 method-name      access$000
 modifier         static
 annotation
 parameters
 return           com.google.common.util.concurrent.RateLimiter
 exceptions

总结

本文对 Arthas的基础使用,进行了梳理,其实是笔者的“自私学习笔记贴”。

参考文献

文章永久链接:https://tech.souyunku.com/40499

未经允许不得转载:搜云库技术团队 » 学会使用ARTHAS(二)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们