当前位置: 首页 > news >正文

记一次生产环境服务卡死排查记录

接现场运维报告某java服务CPU狂飙,服务处于卡死无响应状态

询问现场运维什么场景造成的,答复是偶发现象,没有规律,和请求高峰期并没有关系。

因为服务是负载均衡的(A、B两台),临时处理让运维重启一个服务A下线服务B留作排查,因为是直接kill的,可能会出现数据丢失,需要谨慎操作。初步排查并不是内存泄露造成的(虽然内存占用很大),也使用jstack看了一下线程没有死锁情况,没招,用jmap看运行内容,由于正式环境无法直接连接调试,所以使用jmap生成hprof快照再拿到本地检查,jmap -dump:live,format=b,file=/u01/logs/dump.hprof 97852,文件的大小基本和服务运行内存保持一致,使用jprofile打开此快照

打开后就长这个德行,基本数据类型占用都很大,直接看是看不出来什么玩意,可以使用最下面的类视图过滤器就进行过滤只关注业务代码(这里默认依赖都没有问题,也不大可能有问题,都是最简单的用法),可以使用业务包名进行过滤

过滤后立马清晰明了,某几个bo、vo实例数巨多,我们选择当中某一个

选择传入引用

显示根路径

这个还不是很明显,换一个bo继续看

这个出现了业务代码相关的引用了,赶紧去翻代码

看了这个方法的引用,询问了一下相关开发分析了一下应该是前端调用的,大概就是根据查询条件返回list再for循环处理,这里有一个大问题,如果前端没有传查询条件,就会全表查询,让相应开发排查,前端部分查询条件是另一个对象里面的字段,可能为空,排查方式不表

这次问题不复杂,找对其实很快就能排查出来,强烈建议搞不清楚生产环境出错原因的直接拉快照或者连接生产环境排查

http://www.lryc.cn/news/160042.html

相关文章:

  • AFL模糊测试
  • PaddleOCR学习笔记1-初步尝试
  • ExpressLRS开源代码之框架结构
  • 【C++ • STL】一文带你走进string
  • GPT引领前沿热点、AI绘图
  • ArcGIS Pro3.0.2保姆级安装教程
  • 如何才能搭建高质量的在线产品手册呢?
  • 从零开始学习软件测试-第38天笔记
  • ASP.NET Core 8 的 Web App
  • jeesite自定义数据字典,自定义字典表,自带树选择数据源(保姆级图文教程)
  • 基于v-md-editor的在线文档编辑实现
  • C(结构体指针、利用结构体指针偏移获取数据)
  • 数据结构和算法之插入排序
  • 感应电动机
  • AjaxJavaScriptcss模仿百度一下模糊查询功能
  • sqli-labs复现
  • k8s入门到实战--跨服务调用
  • 小程序中使用分包
  • python官方标准库
  • Python Opencv实践 - 霍夫圆检测(Hough Circles)
  • 异步请求库的实际应用案例:爬取豆瓣经典电影
  • 数据结构学习系列之两个单向链表的合并
  • java网络编程,套接字socket
  • 一日一技:Python如何同时调用多个GPT的API?
  • 【云原生】Docker环境安装
  • 56、springboot ------ RESTful服务及RESTful接口设计
  • sysmonitor如何使用
  • 视频监控/视频汇聚/安防视频监控平台EasyCVR如何将默认快照的raw格式改为jpg/base64格式?
  • QRCode.js生成的二维码水平居中的解决方案
  • 在Cisco设备上配置接口速度和双工