============jstack 命令查看线程信息=============
将jstack堆栈信息生成到文件中,通过命令将信息 打入到文件中 jstack pid >> /home/test.txt
我们再用IBM Thread and Monitor Dump Analyzer for Java这个工具来分析。这里可以清晰的看到线程数状态统计,和每个线程的状态。
dump 文件里,值得关注的线程状态有:
死锁,Deadlock(重点关注)
执行中,Runnable
等待资源,Waiting on condition(重点关注)
等待获取监视器,Waiting on monitor entry(重点关注)
暂停,Suspended
对象等待中,Object.wait() 或 TIMED_WAITING
阻塞,Blocked(重点关注)
停止,Parked
=================阿里 Arthas使用authas是一个jar包,可以直接下载后运行=====================
安装:wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
官网:https://arthas.aliyun.com/
1、dashboard 这个面板会实时刷新,其中包括线程信息、内存信息、gc信息、还有一些运行时的数据。另外,当运行在Ali-tomcat时,会显示当前tomcat的实时信息,如HTTP请求的qps, rt, 错误数, 线程池信息等等
1,watch com.zhangna.Test test returnObj 监听方法的返回值
2,trace com.zhangna.Test test 查看方法各个阶段的调用时长
3,thread 列出所有的线程信息,并把CPU使用率高的线程排在最前面,
4,使用 tt -t com.zhangna.Test test -n 2
5, thread -b 找出当前阻塞其他线程的线程
6, thread -n 5 列出cpu使用率前5 的线程
7, watch com.zhangna.Test test "params[0]" 查看方法的入参
8,jvm 查看当前jvm信息
9、反编译指定已加载类的源码,jad demo.MathGame
10、monitor
monitor命令可以监控方法的执行情况。比如调用成功次数,失败次数,失败率、平均执行时间等等。默认120秒输出一次,也就是说,当我们输入monitor命令之后,每120秒就会输出一次统计结果。
通过-c参数可以修改输出频率,支持通配符和正则表达式。 例如:monitor -c 5 demo.MathGame primeFactors
11、dump 如果内容使用率在不断上升,而且gc后也不下降,后面还发现gc越来越频繁,很可能就是内存泄漏了。这个时候我们可以直接用heapdump命令把内存快照dump出来,作用和jmap工具一样
命令:heapdump --live /root/jvm.hprof 然后把得到的dump文件导入eclipse,用MAT插件分析就行了。
jhat dump.hprof ,生成文件,成功后我们就可以通过IP+端口进行访问了
C:\Users\xxx\Desktop\abc.hprof
jstack 和Arthas的简单使用
最新推荐文章于 2025-03-09 10:27:58 发布