记一次线上排查cpu飙升原因

本文介绍了如何通过Linux命令`top`和`jstack`来诊断并找出导致CPU资源消耗过高的Java服务。首先,利用`top -H -p <pid>`来识别占用CPU异常的线程PID,然后使用`sudo jstack <pid> > jstack.log`保存堆栈信息。接着,将找到的16进制线程PID在`jstack.log`中搜索,以确定具体哪个线程导致问题。这个过程对于系统性能调优和故障排查至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 使用top 查看程序占用情况定位到是哪个服务占用cpu过高
    在这里插入图片描述

  2. 根据第一步的pid定位到是哪个线程cpu使用异常
    top -H -p 67849
    在这里插入图片描述

  3. 使用sudo jstack 67849> jstack.log 将当前服务的堆栈信息输出到一个文件中

  4. 将第二步找到的异常线程的pid转换成为16进制
    printf ‘%x\n’ 68020

  5. 在第三步输出文件中查找 nid=0x<16进制pids>的线程,查看具体是哪个线程占用cpu异常

在这里插入图片描述
备注: 以上截图均为事故解决后为记录笔记而截取的,
事故原图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值