记一次线上fullgc----数据库查询返回大量数据

news/2025/1/12 6:45:31/

背景

某服务线上16台机器,晚上八点左右有4台机器突然出现fullgc,而且不止一次

处理流程

1)发现机器full gc告警时,立即dump出机器内存快照
2)下线问题机器
3)分析内存快照,找到问题对象
在这里插入图片描述
可以看到,com.mysql.jdbc.JDBC42ResultSet这个对象占了大部分的内存空间,这个JDBC42ResultSet是什么呢?可以理解成我们从数据库查询的数据转成的java对象;
由此可以推测,fullgc的原因是出现了大对象的查询,比如全表扫描等

4)查找数据库的日志,定位fullgc时数据库中的慢查询语句,定位到了根因:上游进行压测,对其中一个id生成了大量重复数据,业务代码中按照id查询时,查出了大量数据,瞬间打满了jvm

思考

1、收到fullgc告警时,手动dump时间上相对滞后,可以考虑新增jvm参数,fullgc前后自动dump内存快照
-XX:+HeapDumpBeforeFullGC
-XX:+HeapDumpAfterFullGC
-XX:HeapDumpPath=data/xxx.dump

2、可以在使用select的时候 加入limit,避免查询出大量数据


http://www.ppmy.cn/news/6889.html

相关文章

[Flask]数据库的连接和操作

一、安装连接程序 在控制台中使用语句 pip install pymysql 即可安装 同时为了使用ORM对数据库进行操作(而非sql语句),还需要安装SQLAlchemy pip install flask-sqlalchemy 二、使用Navicat管理数据库 安装Navicat软件,本体需要…

《计算机网络》——第一章知识点

考试题型: 选择题填空题判断题简答题计算题ISP:因特网服务提供者/因特网服务提供商,是一个向广大用户综合提供互联网接入业务、信息业务、和增值业务的公司,如中国电信、中国联动、中国移动等。分为主干ISP、地区ISP和本地ISP。 计算机网络∶利用通信线…

手把手教你玩转 Excel 数据透视表

1. 什么是数据透视表 数据透视表是一种可以快速汇总、分析大量数据表格的交互式分析工具。使用数据透视表可以按照数据表格的不同字段从多个角度进行透视,并建立交叉表格,用以查看数据表格不同层面的汇总信息、分析结果以及摘要数据。 使用数据透视表…

智慧物联网无线协同代理技术解决方案: 边缘协同感知(EICS)技术解密

无线协同代理技术指基于对目标场景状态变化的协同感知而获得触发响应并进行智能决策,属于蓝奥声核心技术–边缘协同感知(EICS)技术的关键支撑性技术之一。该项技术涉及物联网边缘域的无线通信技术领域,具体主要涉及网络服务节点与目标对象设备…

学习Python中turtle模块的基本用法(6:其它函数)

除了之前文章中介绍的turtle模块的绘图函数,本文从turtle帮助文档中梳理了其它绘图或状态函数,编写复杂的绘图函数时也用得到,函数清单如下表所示: 序号函数名称说明1turtle.home返回初始坐标 (0,0),并设置朝向为初始…

景联文科技2D3D融合标注案例分享|数据标注

在自动驾驶场景中,激光雷达生成的点云数据可用于测量物体的形状和轮廓,并估算出周围物体的位置和速度,但由于激光雷达生成的点云数据缺少RGB数据中存在的纹理和颜色信息,无法精确地识别出路上的汽车、行人、障碍物、信号灯等。而2…

[DonkeyCar][树莓派]基础01 - 首次配置 - WIFI

2022年圣诞节到来啦,疫情把刚刚起来的工作似乎又慢了下来,在冲刺决赛圈的同时,也许开一个新的领域,写一个博客是比较好的方式。 一、前言 拿到树莓派开发板的时候,一般,供应商都会配合烧录的镜像。但是&am…

jQuery库冲突

文章目录jQuery库冲突原因jQuery.noConflict()如还想使用$可以这么做jQuery库冲突 原因 在某些情况下,可能有必要在同一个页面中使用多个JavaScript库。但是很多库都使用了“$”这个符号(因为它简短方便),这时就需要用一种方式来…