当前位置: 首页>前端>正文

arthas memory命令详解 arthas thread -n


实用命令

dashboard

https://alibaba.github.io/arthas/dashboard.html



数据说明

  • ID: Java级别的线程ID,注意这个ID不能跟jstack中的nativeID一一对应
  • NAME: 线程名
  • GROUP: 线程组名
  • PRIORITY: 线程优先级, 1~10之间的数字,越大表示优先级越高
  • STATE: 线程的状态
  • CPU%: 线程消耗的cpu占比,采样100ms,将所有线程在这100ms内的cpu使用量求和,再算出每个线程的cpu使用占比。
  • TIME: 线程运行总时间,数据格式为分:秒
  • INTERRUPTED: 线程当前的中断位状态
  • DAEMON: 是否是daemon线程

thread

查看当前线程信息,查看线程的堆栈

https://alibaba.github.io/arthas/thread.html

参数名称

参数说明

id

线程id

[n:]

指定最忙的前N个线程并打印堆栈

[b]

找出当前阻塞其他线程的线程

[i <value>]

指定cpu占比统计的采样间隔,单位为毫秒

支持一键展示当前最忙的前N个线程并打印堆栈

thread -n 3

当没有参数时,显示所有线程的信息

thread

thread id, 显示指定线程的运行堆栈

thread -b, 找出当前阻塞其他线程的线程,ps:只支持找出synchronized关键字阻塞住的线程

 

jvm

https://alibaba.github.io/arthas/jvm.html

THREAD相关 COUNT: JVM当前活跃的线程数 DAEMON-COUNT: JVM当前活跃的守护线程数 PEAK-COUNT: 从JVM启动开始曾经活着的最大线程数 STARTED-COUNT: 从JVM启动开始总共启动过的线程次数 DEADLOCK-COUNT: JVM当前死锁的线程数 文件描述符相关 MAX-FILE-DESCRIPTOR-COUNT:JVM进程最大可以打开的文件描述符数 OPEN-FILE-DESCRIPTOR-COUNT:JVM当前打开的文件描述符数

 

monitor

monitor -c 周期 com.xxx.className methodName

定义c个周期内,统计方法执行成功、失败、响应时间

demo:monitor -c 5 demo.MathGame primeFactors

监控项

说明

timestamp

时间戳

class

Java类

method

方法(构造方法、普通方法)

total

调用次数

success

成功次数

fail

失败次数

rt

平均RT

fail-rate

失败率

 

watch

https://alibaba.github.io/arthas/watch.html

让你能方便的观察到指定方法的调用情况。能观察到的范围为:返回值抛出异常入参,通过编写 OGNL 表达式进行对应变量的查看。

 



参数说明

watch 的参数比较多,主要是因为它能在 4 个不同的场景观察对象

参数名称

参数说明

class-pattern

类名表达式匹配

method-pattern

方法名表达式匹配

express

观察表达式

condition-express

条件表达式

[b]

方法调用之前观察

[e]

方法异常之后观察

[s]

方法返回之后观察

[f]

方法结束之后(正常返回和异常返回)观察

[E]

开启正则表达式匹配,默认为通配符匹配

[x:]

指定输出结果的属性遍历深度,默认为 1

 

trace

https://alibaba.github.io/arthas/trace.html



参数说明

参数名称

参数说明

class-pattern

类名表达式匹配

method-pattern

方法名表达式匹配

condition-express

条件表达式

[E]

开启正则表达式匹配,默认为通配符匹配

[n:]

命令执行次数

#cost

方法执行耗时

 

 

demo:

trace demo.MathGame run

-j 忽略jdk方法

trace -j demo.MathGame run//

据调用耗时过滤

trace demo.MathGame run '#cost > 10'

[0,0,0ms,11]xxx:yyy() [throws Exception],对该方法中相同的方法调用进行了合并,0,0,0ms,11 表示方法调用耗时,min,max,total,count;throws Exception 表明该方法调用中存在异常返回

耗时含arthas消耗

 

stack https://alibaba.github.io/arthas/stack.html

参数名称

参数说明

class-pattern

类名表达式匹配

method-pattern

方法名表达式匹配

condition-express

条件表达式

[E]

开启正则表达式匹配,默认为通配符匹配

[n:]

执行次数限制

 

stack demo.MathGame primeFactors



据条件表达式来过滤



$ stack demo.MathGame primeFactors 'params[0]<0' -n 2
Press Ctrl+C to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 30 ms.
ts=2018-12-04 01:34:27;thread_name=main;id=1;is_daemon=false;priority=5;TCCL=sun.misc.Launcher$AppClassLoader@3d4eac69
    @demo.MathGame.run()
        at demo.MathGame.main(MathGame.java:16)
 
ts=2018-12-04 01:34:30;thread_name=main;id=1;is_daemon=false;priority=5;TCCL=sun.misc.Launcher$AppClassLoader@3d4eac69
    @demo.MathGame.run()
        at demo.MathGame.main(MathGame.java:16)
 
Command execution times exceed limit: 2, so command will exit. You can set it with -n option.



 



据执行时间来过滤



$ stack demo.MathGame primeFactors '#cost>5'
Press Ctrl+C to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 35 ms.
ts=2018-12-04 01:35:58;thread_name=main;id=1;is_daemon=false;priority=5;TCCL=sun.misc.Launcher$AppClassLoader@3d4eac69
    @demo.MathGame.run()
        at demo.MathGame.main(MathGame.java:16)


options

https://alibaba.github.io/arthas/options.html

配置执行结果存日志

docker

https://alibaba.github.io/arthas/docker.html




https://www.xamrdz.com/web/2ts1944712.html

相关文章: