JVM诊断调优工具Arthas 教程到实战(CPU飙高,线程死锁,请求回放,方法监控)_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV16B4y1V7hv/?spm_id_from=333.788&vd_source=c75991e76531b6d1e567b05c728023c9
curl -O https://alibaba.github.io/arthas/arthas-boot.jar 请解释以上代码意思
这段代码使用 curl
命令从指定的URL下载文件。让我们逐步解释这段代码的每个部分:
-
curl: 是一个命令行工具,用于在命令行下传输数据。它支持多种协议,包括 HTTP、HTTPS、FTP 等。
-
-O: 是
curl
命令的一个选项,它表示将文件保存为与远程文件名相同的本地文件名。也就是说,它告诉curl
使用远程文件的名称作为本地文件的名称。 -
https://alibaba.github.io/arthas/arthas-boot.jar: 是要下载的文件的URL。在这个例子中,这是Arthas的引导(boot)JAR文件的URL。Arthas是一种Java应用程序诊断工具,
arthas-boot.jar
是它的启动器。
因此,整个命令的含义是从指定的URL(Arthas的官方网站)下载 arthas-boot.jar
文件,并将其保存为本地文件,文件名与远程文件相同。这通常用于在命令行中获取软件或工具的最新版本。
watch com.tan.p13.ProducerController sendDirectMessage2 ‘{params,returnObj,throwExp}’ -n 5 -x 3 什么意思
这是 Arthas(Alibaba Java Diagnostic Tool)的 watch
命令的使用示例,用于监视指定方法的调用情况。让我们逐个解释这个命令:
watch com.tan.p13.ProducerController sendDirectMessage2 '{params,returnObj,throwExp}' -n 5 -x 3
-
watch
: 是 Arthas 中用于监视和观察的命令。 -
com.tan.p13.ProducerController sendDirectMessage2
: 指定要监视的方法,这里是com.tan.p13.ProducerController
类中的sendDirectMessage2
方法。 -
'{params,returnObj,throwExp}'
: 指定要观察的内容,用于显示方法的参数、返回值和异常。在这个例子中,你监视了方法的参数、返回值和抛出的异常。 -
-n 5
: 指定监视的次数,这里是监视5次。 -
-x 3
: 指定监视的间隔时间(单位为秒),这里是每3秒监视一次。
这个命令的作用是每隔3秒监视 com.tan.p13.ProducerController
类中的 sendDirectMessage2
方法的调用情况,包括方法的参数、返回值和抛出的异常,共监视5次。
请注意,这里的参数 '{params,returnObj,throwExp}'
是一个表达式,你可以根据需要选择监视的内容。这个表达式中的三个部分分别表示方法的参数、返回值和抛出的异常。
Arthas 查看某个命令的帮助文档
在 Arthas 中,你可以使用 help
命令查看某个命令的帮助文档。例如,如果你想查看 watch
命令的帮助文档,可以按照以下步骤进行:
help watch watch -h
这将输出 watch
命令的详细帮助文档,包括命令的使用方式、参数说明以及示例用法。
如果你想查看特定命令的子命令的帮助文档,你可以使用如下命令:
help watch sub-command
例如,查看 watch
命令的 sub-command
的帮助文档:
help watch count
这将显示 watch
命令的 count
子命令的帮助信息。
请注意,Arthas 中的命令体系相当丰富,help
命令是了解和学习 Arthas 命令使用的重要途径。
trace com.tan.p1.OrderService takeOrder -n 5 --skipJDKMethod false
这是 Arthas(Alibaba Java Diagnostic Tool)的 trace
命令的使用示例,用于跟踪指定方法的调用链。让我们逐个解释这个命令:
trace com.tan.p1.OrderService takeOrder -n 5 --skipJDKMethod false
-
trace
: 是 Arthas 中用于跟踪方法调用的命令。 -
com.tan.p1.OrderService takeOrder
: 指定要跟踪的方法,这里是com.tan.p1.OrderService
类中的takeOrder
方法。 -
-n 5
: 指定要跟踪的调用链深度,这里是5层。 -
--skipJDKMethod false
: 指定是否跳过 JDK 方法。false
表示不跳过 JDK 方法,也就是将包括 JDK 方法在内的所有方法都进行跟踪。
这个命令的作用是跟踪 com.tan.p1.OrderService
类中的 takeOrder
方法的调用链,显示调用链的深度为5层,而且不会跳过 JDK 方法。
通过这个命令,你可以观察到 takeOrder
方法的调用链,包括方法的入参和返回值,帮助你理解方法是如何被调用的。请注意,深度较大的调用链可能会产生大量的输出信息,需要谨慎使用。
JVM诊断调优工具Arthas 教程到实战(CPU飙高,线程死锁,请求回放,方法监控)_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV16B4y1V7hv/?spm_id_from=333.337.search-card.all.click&vd_source=c75991e76531b6d1e567b05c728023c9