CPU占用高,导致请求超时的故障排查

一、发现问题的系统检查

 

一个管理平台门户网页进行统计页面提示请求超时,随进服务器操作系统 top 命令进行检查load average的负载状况

 

二、定位故障

根据这种故障的一般处理思路,先找出问题进程内CPU占用率高的线程,再通过线程信息找出该线程当时在运行的问题代码端

根据思路查看高占用的进程中占用高的线程

追踪发现某个进程中的的某个线程占用较高

]# top  -Hbp PID | awk '/进程名/ && $9>10'

 

将PID对应占用高的线程ID转为16进制的线程ID

]# printf '%x\n'  线程ID

输出16进制的线程ID

通过 jvm的  jstack查看进程信息,发现调用的是哪个服务的问题

]# jstack 进程ID  | grep '16进制的线程ID'  -A 30

既然查出来了就检查该应用服务

思路是先打印所有在跑的服务线程,检查后发现跟进情况找到问题所在

 

  • 举例:

]# top -Hbp 7163 | awk '/java/ && $9>50'     #7163占用高的进程Id

]# printf  '%x\n' 16298                                  #16298 为7163进程中线程占用较高的

输出 3faa

]# jstack 7163 | grep '3faa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值