美文网首页
通过jstack与jmap分析一次线上故障

通过jstack与jmap分析一次线上故障

作者: 孤独而无用 | 来源:发表于2020-10-20 15:42 被阅读0次

    有一次线上发现一个很奇怪的事情,有一个应用是2台负载均衡处理, 但是一台机器cpu飙高的 800%多,另一台很正常.


    机器A正常
    机器B异常
    简单分析了一下问题,可能存在的问题有:

    1.系统本身代码问题
    2.上游系统调用量飙高
    3.分布式锁
    4.机器本身问题

    解决办法

    1.top查看当前jboss应用的pid进程号
    2.查看改pid进程下对应的进程的线程信息, 下图发现有13个线程分别占用了60%多的cpu,很奇怪


    高占用进程的线程信息

    3.把几个pid转换为16进制,用jstack命令看下线程是做什么的,返现都是gc线程,如图:


    有问题线程
    为什么会出现如此多的gc线程呢,我们查看下当前java堆中的对象数量和大小
    jmap -histo:live 27839 |head -30
    图片.png

    相关文章

      网友评论

          本文标题:通过jstack与jmap分析一次线上故障

          本文链接:https://www.haomeiwen.com/subject/dbegkctx.html