七仔的博客

七仔的博客GithubPages分博

0%

排查线上java程序cpu占用过高

记录排查线上java程序cpu占用过高中使用的操作以便后续查询

排查线上java程序cpu占用过高

原因

线上服务器占用CPU过高

过程

  1. 通过top命令查询进程列表,第一个是cpu占用最高的,是一个定时任务的微服务(进入后c可以查询进程详细信息),记住pid
1
top
  1. 通过上一步的pid,查看该进程中的线程列表
1
top -Hp 31273
(这里的31273换成你上一步查询的pid)

然后我这里看到有一个线程异常的高,记住其pid,然后转换成16进制(可以用win自带计算器转换)
  1. 通过jstack命令查询该线程的堆栈信息
1
jstack 31273 |grep 84b -A 30
(这里的31273还是换成第一步的进程pid,84b换成第二步的线程的pid的16进制,然后-A后面的30代表查询堆栈信息30行)

到这里就很明了了,我这里是因为重算导致的

87a18fc73bd53cd7ef6462413e1d94f6.png

  1. (错误的)我想单单杀掉这个线程,还用了-9,但是进程也直接死掉了。。。

    此为博主副博客,留言请去主博客,转载请注明出处:https://www.baby7blog.com/myBlog/126.html

欢迎关注我的其它发布渠道