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

线上jvm假死问题排查

1.线上告警接口超时
在这里插入图片描述
看接口是用户服务,查看nacos服务实例,发现有一个节点已经下线了

3.找到对应节点所在服务器,jps -l 命令发现用户服务还在,初步判断是假死

4.使用 jstat -gc 进程id 1000 每秒打印gc情况,发现频繁full gc,平均3秒一次,然后每次gc时间大概3~4秒
在这里插入图片描述

5.jmap -heap 进程id发现新生代和老年代都满了,紧急生成堆转储 jmap -dump:format=b,file=heapdump.hprof ,然后重启服务

6.使用MAT分析堆栈信息,排查内存泄漏的问题,看到分析是mysql查询时有占用了1.1G左右,jvm才配置了2G,当时想到可能是无条件查询导致查询了大量数据
在这里插入图片描述

7.继续排查看到线程的堆栈指向的业务代码是查询用户,看了下相关逻辑是有传手机号码查询用户的
在这里插入图片描述
8.由于是查询数据库占用了大量堆内存,所以判断当时查询肯定是很慢的,所以看了阿里云数据库的慢sql记录,果然发现查询返回了150多万数据
在这里插入图片描述
9.看了具体SQL是手机号码传1,使用的是模糊匹配,导致所有用户都查出来了

select * from user where mobile LIKE '%1%'

10.调整代码为不使用模糊搜索,解决问题

select * from user where mobile = '1'
http://www.xdnf.cn/news/7540.html

相关文章:

  • 内存分页法
  • 前端小demo项目实战<京东秒杀Tab栏切换、进度条控制和成绩管理表单>
  • 代码随想录算法训练营 Day52 图论Ⅲ 岛屿问题Ⅱ 面积 孤岛 水流 造岛
  • 软考中级-软件设计师 UML图详解( 类图,对象图,用例图,序列图,通信图,状态图,活动图,构件图,部署图)
  • 【每天一个MCP】【记录向】:准备工作,创建github项目
  • 武汉副市长李湛莅临指导 珈和展会精彩亮相引《武汉电视台》深度报道 以硬核科技赋能农业强链新范式获政府媒体“双重点赞”
  • 【老马】流程引擎(Process Engine)概览
  • LLM | 论文精读 | NAACL 2025 | Clarify When Necessary:教语言模型何时该“问一句”再答!
  • HarmonyOS5云服务技术分享--认证文档问题
  • 清华大学无人机城市空间导航探索!CityNavAgent:基于层次语义规划与全局记忆的空中视觉语言导航
  • 开疆智能Profinet转ModbusTCP网关连接BORUNTE伯朗特系统配置案例
  • Django基础(一)MVT 模式与 Django 框架
  • 北斗导航 | 基于matlab的多波束技术的卫星通信系统性能仿真
  • python自学笔记5 函数
  • 正则表达式进阶(三):递归模式与条件匹配的艺术
  • 【北邮通信系统建模与仿真simulink笔记】(1)主要用到的模块库介绍
  • 【MySQL】04.数据类型
  • 计算机组成与体系结构:RAM(随机存取存储器)
  • c/c++的opencv均值模糊
  • 微软账户无密码化的取证影响
  • 基于大模型预测的闭合性髌骨骨折诊疗全流程研究报告
  • 【信息系统项目管理师】第11章:项目成本管理 - 32个经典题目及详解
  • Windows系统下MySQL 8.4.5压缩包安装详细教程
  • uniapp如何设置uni.request可变请求ip地址
  • 经典Java面试题的答案——Java 基础
  • ElasticSearch性能优化
  • 网页前端开发(基础)
  • WIFI信号状态信息 CSI 深度学习篇之CNN(Python)
  • Typescript学习教程,从入门到精通,TypeScript 继承语法知识点及案例代码(8)
  • Kotlin 协程 (三)