美文网首页收藏C/CPLUS
记录一次内存溢出问题排查

记录一次内存溢出问题排查

作者: 莫夏_b560 | 来源:发表于2022-01-09 23:48 被阅读0次

    1、问题发现

    (1)服务启动半小时后,FullGC次数狂飙,然后服务不能访问,日志抛出heap


    image.png

    (2)查看cpu及内存资源


    2414.jpg

    (2)dump出快照文件分析


    2415 (1).jpg

    2、分析

    (1)rabbitmq服务挂了
    (2)rabbitmq消费逻辑有问题

    3、验证

    (1)查看rabbitmq服务,可以登录,可以查看,没发现问题
    (2)重启服务后,将rabbitmq停掉,再次查看的时候发现老年代没有发生堆积回收不掉的情况
    (3)重启rabbitmq后,一切正常。

    通过查看线程资源,用jstack 看了下,全部都是java.lang.Thread.State: BLOCKED (on object monitor),推测大概率是rabbitmq硬盘或内存报警导致的block。跟运维沟通后,原来是之前已经发现过mq内存不足, 运维没及时处理。根据该情况,推测客户端发送数据不断新建线程去链接 ,mq服务无法持续处理,导致一直占用链接,导致线程阻塞占用资源无法回收,从而导致服务内存溢出。

    4、其他

    jmap -dump:format=b,file=24.hprof 24
    
    kubectl cp qzcsbj/order-b477c8947-tr8rz:/tmp/jstack.txt /root/test/jstack.txt
    tar cf - data.txt | kubectl exec -i -n qzcsbj order-b477c8947-tr8rz -- tar xf - -C /root/
    以上,-n qzcsbj,表示指定namespace
    kubectl -n dev-srm cp  console-5749665dcb-txnq5:/deploy/logs/24.hprof /deploy/24.hprof
    

    mat试用

    https://www.cnblogs.com/rb2010/p/14741674.html
    

    相关文章

      网友评论

        本文标题:记录一次内存溢出问题排查

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