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

查找元凶

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

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

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

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

通过jstack查看线程信息

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

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

    源码

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

 

相关文章:

  • 2021-11-26
  • 2022-12-23
  • 2021-09-21
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-04-27
  • 2022-01-21
  • 2021-05-10
  • 2021-12-16
  • 2021-06-06
  • 2022-12-23
相关资源
相似解决方案