前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CPU飙高排查

CPU飙高排查

作者头像
doper
发布2022-09-26 17:48:19
2.1K0
发布2022-09-26 17:48:19
举报
文章被收录于专栏:后台技术杂项笔记

SpringBoot应用 CPU飙高排查

1. 准备

创建SpringBoot Web应用,访问/test/t1会死循环

访问/test/t2会死锁

2. 模拟

访问两次/test/t1,一次/test/t2

3. 排查

3.1 排查CPU问题

此时使用top命令看一下进程

可以看到进程5510占用大量CPU

此时看看进程5510里面是哪个线程导致这种结果

代码语言:javascript
复制
top -p 5510 -H

可以看到是线程55625563占用大量CPU,转化为16进制,方便带回查询堆栈定位。

接下来打印出该进程的堆栈信息

代码语言:javascript
复制
jstack 5510 > info.txt

此时进程5510的堆栈信息已经保存在info.txt中,vim查看,然后定位线程15bb和线程15ba的堆栈信息。

可以看到线程运行在17行的位置,看一下代码17行。

可以看到17行确实是死循环的位置。

3.3 排查死锁问题

在上述打印出堆栈信息到info.txt后,在信息的最后可以看到死锁信息

查看代码41行和33行

找到线程死锁位置。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SpringBoot应用 CPU飙高排查
  • 1. 准备
  • 2. 模拟
  • 3. 排查
    • 3.1 排查CPU问题
      • 3.3 排查死锁问题
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档