dashboard
- 第一部分显示JVM中运行的所有线程:所在线程组,优先级,线程的状态,CPU的占用率,是否是后台进程等;
- 第二部分显示的JVM内存的使用情况;
- 第三部分是操作系统的一些信息和Java版本号;
thread
thread命令可以追加的参数
- id:可以查看指定线程id的堆栈信息;
- -n value:找出最忙的value个线程,并打印堆栈信息;
- -b:找出当前正在阻塞其他线程的线程;
- -i value:指定采样cpu占比的时间间隔,默认为100ms;
打印当前最忙的3个线程的堆栈信息
trace
方法内部调用路径,并输出方法路径上的每个节点上耗时. 这个方法经常用到,可以查询方法的那个节点用时较长,方便以后优化。
例如:trace com.dy.admin.controller.VideoCommentController getCommnetUser
这个时候就会监听,等待这个方法的调用 来统计时间。
可以看到, queryPage() 居然调用了快9秒钟,继续往下看
trace com.dy.admin.service.IVideoCommentService queryPage
这里就可以很好的看到,针对哪些方法取优化。这样就不用盲目的去找哪些方法耗时长。
退出 arthas
如果只是退出当前的连接,可以用quit或者exit命令。Attach 到目标进程上的 arthas 还会继续运行,端口会保持开放,下次连接时可以直接连接上。
如果想完全退出 arthas,可以执行stop命令。