SpringBoot线上服务假死:非资源耗尽的故障排查
需积分: 0 70 浏览量
更新于2024-08-03
收藏 707KB PDF 举报
"本文档探讨了SpringBoot线上服务在CPU和内存正常的情况下突然假死的问题,针对常见的服务挂掉情况,如CPU不足、内存溢出或GC频繁,提供了深入剖析和解决方案。文章以B站713事故中的"0"作为启示,强调在排查时需关注集群环境下的服务一致性,并介绍了排查过程中的关键步骤,如检查线程状态、异常线程堆栈、内存占用情况以及使用工具如`jstack`、`jmap`和MAT进行分析。
首先,作者强调了在遇到服务无明显错误日志,但CPU和内存表现正常的假死现象时,不能忽视常规排查。这包括通过`top`或`ps`命令检查进程线程,查看异常线程ID,以及使用`jstack`获取堆栈信息来定位可能的循环递归或数据库慢查询等问题。
接下来,文档详细介绍了MAT工具的使用,尤其是Histogram视图,它帮助分析内存分配情况,区分ShallowSize(对象自身占用)和Retained Size(对象及其所有引用占用),以便找出内存泄漏的可能源头。LeakSuspects报表则以图形方式直观地展示了内存泄漏嫌疑的分布,有助于快速定位到代码层面的内存泄漏点。
最后,针对此次具体的问题排查,由于服务健康监测显示无响应且资源使用正常,作者建议直接查看堆栈信息以了解线程活动,进一步缩小问题范围。这表明在面对复杂的技术问题时,细致的分析和正确的工具运用是解决问题的关键。
本文提供了一套完整的线上SpringBoot服务假死排查流程,强调了在非典型情况下识别和解决问题的重要性,对于开发人员和运维人员来说,是一份实用的故障排除指南。"
2022-06-16 上传
2023-10-15 上传
2023-12-07 上传
2023-08-12 上传
2023-12-07 上传
2024-04-12 上传
2024-03-29 上传
2023-03-16 上传
2023-07-22 上传
毕业小助手
- 粉丝: 2747
- 资源: 5583
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍