Arthas是一款Java诊断工具,提供了丰富的命令行工具,其中包括了查看耗时大于的命令。本文将从多个方面对Arthas查看耗时大于进行详细阐述,帮助读者更好的掌握和使用该命令。
一、查看耗时大于命令简介
Arthas中的查看耗时大于命令为monitor
命令,该命令可以监控方法调用的时间,输出超时的调用栈信息,可以很好的定位性能问题。进入Arthas控制台后,输入以下命令:
$ monitor --cutoff 2000
其中--cutoff
参数表示超时的阈值,单位为毫秒。
二、监控指定类的方法耗时
如果我们只想监控特定的类中的方法耗时,可以使用--cutoff
参数,一起使用--only
参数,指定需要监控的类:
$ monitor --cutoff 2000 --only com.example.demo.controller.UserController
上述命令会监控com.example.demo.controller.UserController
中的方法耗时。如果要监控多个类,需要多次执行monitor
命令。
三、过滤特定方法
在监控中,有时候我们可能不想监控某个特定的方法,可以使用--skip
参数,控制不需要监控的方法:
$ monitor --cutoff 2000 --only com.example.demo.controller --skip findUserById
以上命令会监控com.example.demo.controller
中所有方法,但是不会监控findUserById
方法。
四、监控线程
对于多线程程序,我们可能需要对指定线程进行监控,用--thread
参数即可指定需要监控的线程id:
$ monitor --cutoff 2000 --thread 5
以上命令会监控线程id为5
的线程。
五、输出结果
在监控命令执行后,会在控制台中输出超时的调用栈信息,包括类名、方法名、参数、耗时等信息。如下所示:
Class Name | Method Name | Cost(ms) | # |
---------------------|--------------------------|----------|----|
com.example.demo.controller.UserController | getUserById | 1028 | 1 |
com.example.demo.controller.UserController | findAllUsers | 3219 | 2 |
超时的方法会按照耗时从大到小排列。
六、保存结果
如果想将结果保存到文件中,可以使用--output
参数指定输出文件路径:
$ monitor --cutoff 2000 --only com.example.demo.controller --output /data/arthas/monitor.log
上述命令会将输出结果保存到/data/arthas/monitor.log
文件中。
七、命令结束
当要结束monitor
命令时,在命令提示符下按Ctrl-C
即可。