zoukankan      html  css  js  c++  java
  • 报表worker-CPU使用率过高原因排查

    一、排查过程
    1:查看机器监控,初步判断可能有耗CPU的线程
     
    bf04410e-9f05-4958-83e0-a2ead10a4aaa
    bf04410e-9f05-4958-83e0-a2ead10a4aaa
    2:导出jstack,发现有大量的RUNNABLE线程,都在java-NIO,之前看过下面http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6403933这篇文章,感觉是这个BUG,由于对ES不熟悉,网上看了一些ES资料,寻求从网络寻找类似案例,没有找到结果。
    acee5685-d3d6-4d18-8f91-6e2b4208d77f
    acee5685-d3d6-4d18-8f91-6e2b4208d77f
    3:第二天,查看NETTY代码发现,netty已经解决了NIO-BUG,可以排除NIO-BUG了。
     
    2a2ab8d7-faab-49ff-a37c-36e3021568fe
    2a2ab8d7-faab-49ff-a37c-36e3021568fe
    4:导出jstat信息,发现JVM老年代占用过高(达到97%),Full-GC频率超高,FULL-GC总共占用了36小时。初步定位是频繁FULL-GC导致CPU负载过高。
     
    6a7fb44a-b86a-44a3-9355-5888aae1db3f
    6a7fb44a-b86a-44a3-9355-5888aae1db3f
    5:使用jmap –histo导出堆概要信息,发现有个超大的HashMap。
     
     
    2dcacbd2-fd8d-431c-93c1-038e98f02f1c
    2dcacbd2-fd8d-431c-93c1-038e98f02f1c
    6:使用jmap –dump导出堆。
    74ae2f08-3c07-43f3-99c2-e4cd27946419
    74ae2f08-3c07-43f3-99c2-e4cd27946419
    6523c119-ba92-4fc0-84ab-e4417672b50d
    6523c119-ba92-4fc0-84ab-e4417672b50d
    得出hashMap中的KEY是运单号
    二、总结
    1:使用缓存时要做容量估算,并考虑数据增长率
    2:缓存要有过期时间。
  • 相关阅读:
    爬虫大作业
    作业
    新练习
    爬虫新练习
    最新操作
    小练习
    Hadoop综合大作业
    理解Mapreduce
    熟悉常用的HBase操作
    第三章 熟悉常用的HDFS操作
  • 原文地址:https://www.cnblogs.com/hhbk/p/7606274.html
Copyright © 2011-2022 走看看