记一次线上CPU报警排查过程

1. 前言

记录最近收到线上服务cpu报警处理过程。

2. 定位

2.1 先恢复服务保留线程

保留1台机器,其他机器重启恢复服务

2.2 定位cpu使用率高的线程

通过top -Hp pid定位线程
在这里插入图片描述

2.3 定位代码

通过jstack导出线程快照,将高线程id转化为16进制查找(22699转58ab),发现是gc导致cpu爆满,估计可能是内存泄露问题
在这里插入图片描述

2.4 导出jvm内存信息

通过jmap导出jvm内存信息,重启机器先恢复服务

2.5 jvm内存分析

通过visualvm分析内存,定位到是一个线程sql查询大量数据占有大量内存导致一直fullgc
在这里插入图片描述
6

2.6 定位代码问题

通过排查代码和sql记录确定是由于PageHelper位置错误引起的。
在这里插入图片描述
在这里插入图片描述

3. 解决问题

通过修复代码上线修复问题

4. 总结

线上cpu问题一定要在尽快恢复服务的前提下保留一定信息便于排查问题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值