jstack应用-查找CPU飚高的原因

场景

在系统上线后,经常会遇到运维的同学跑过来说:“这次发版后,cpu线程使用率到一场,到100%了”。这时候不要慌,可以使用堆转储来分析到底是哪个线程引起的。

查找元凶

发现pid=17850的进程线程使用率100%,查询进程中哪个线程导致的问题

 

发现17880的线程导致cpu飚高。

通过jstack查看线程信息

  • 首先把pid 17880转成16进制
  • 查询堆信息
  • 发现HardTask(源码在末尾)第18行可能有问题

    源码

源码很简单,就是创建了2种线程HardTask和SimpleTask。然后通过CpuTest进行启动。

 

posted on 2018-06-04 12:44  范景锋  阅读(206)  评论(0编辑  收藏  举报

导航