记一次生产故障排查-CPU过高排查思路和分析

前提:前段时间公司服务器突然CPU飙高,久久不能下降,分析原因是因为公司有同事使用了JDK原生自带的线程池,导致创建了大量的线程去处理任务并且一直处于等待状态,解决:结合Linux命令+JDK命令一块分析并定位问题进行排查,以下说说我的解决思路:
1、先用 top 命令来查看CPU占用最高的那个程序 找出它的 进程ID也就是 PID
在这里插入图片描述

2、使用 ps -ef 或者 jps 命令来进行下一步定位,得知是怎样的一个程序给我们惹事
(ps -ef | grep pid | grep -v grep)(jps -l | grep pid 或者关键字)
在这里插入图片描述

3、定位到具体线程或者代码 ps -mp 进程ID -o THREAD,tid,time
-m 显示所有线程
-p pid 进程使用cpu的时间
-o 该参数后是用户自定义格式
在这里插入图片描述

4、将需要的线程ID转换为16进制格式(注意要英文小写)
5、jstack 进程ID(pid) | grep 线程ID(tid)-A60 (打印前60行)
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值