线上Web应用故障排查之高CPU占用

故障描述

Web服务启动之后,服务器CPU使用率瞬间飙升到90%。此时接口服务频繁超时。

故障处理

由于短时间无法定位和修复问题,以免影响终端用户操作体验,采取了回滚操作。

故障问题分析

一般一个应用CPU使用率很高,通常都是由于程序中的死循环引起的。

故障问题定位过程

####1、使用 top 命令查看占用 CPU 较高的进程 top命令

可以看到 PID 为 26484 这个进程的 CPU 占用率最高。

####2、定位具体进程 使用 'ps aux | grep 26484' 或 'ps -ef | grep 26484' 命令,定位到具体的进程

ps命令

####3、查看进程下的线程 CPU 占用情况 使用 'ps -mp 26484 -o THREAD,tid,time | sort -rn' 命令打印出该进程下的线程占用 CPU 情况

ps命令查看线程

可以看到 TID 为 26762 的这个线程占用 CPU 最高 ####4、线程 ID 转换为 16 进制格式 使用 'printf "%x\n" 26762' 命令将线程 ID 转换为 16 进制格式, 以方便下一步查询线程堆栈信息

线程ID转换

####5、查看线程堆栈信息 使用 'jstack 26484 |grep 688a -A 30' 命令打印出高 CPU 占用的线程 26762 的堆栈信息, 如下:

线程堆栈

从上面的输出结果就可以定位到具体出问题的代码, 最后就是仔细分析代码,解决问题。

转载于:https://my.oschina.net/jackieyeah/blog/699619

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值