jstack 和Arthas的简单使用

============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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值