快速定位线上CPU100%原因

当遇到线上系统CPU使用率达到100%时,通过执行`top`、`top -Hp`、`printf`、`jstack`等命令,可以快速定位到问题。通常可能是接口响应时间过长、大对象导致频繁FGC、死循环或线程死锁。通过转换线程ID并使用`jstack`查看详细信息,找到代码中的问题,例如统计方法因时间跨度大和频繁刷新导致卡顿。解决方法包括暂停非关键功能,优化代码,确保主要流程正常运行。
摘要由CSDN通过智能技术生成

引言

最近项目部门反应有个系统特别卡顿,很多页面都打不开了,开发人员告诉我说最近没有进行代码升级,我登录到对应的服务器上执行了top命令,发现cpu飙升到100%,对于这种问题我们应该快速的定位到问题,否则会影响线上系统的正常作业。

对于造成这种问题的可能原因,迅速的在头脑中闪过四种情况:

  1、某个接口响应时间超长,并且可能被频繁调用

  2、产生了过大的对象,造成频繁FGC

  3、代码出现死循环

  4、线程出现死锁

 下面是小编的定位问题的步骤:

  1)top

   2)top  -Hp 2848

   3)printf "%x" 2925

   4)jstack 2848 | grep 0xb6d -C50 --color

第一、执行top命令,结果如下

我们根据top结果发现,有java进程CPU占用超过100%,说明这个进程中的代码出现问题了

第二、执行top  -Hp 2848 查看该pid详情

从上面结果,我们基本可以排除产生大对象的情况,因为如果有大对

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

g-Jack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值