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

GC/OOM问题处理思路

原则先止损再分析。如果是灰度阶段则直接回滚代码保留一台留作分析如果是全量阶段个别机器偶发则禁用该机器。流程保护现场禁用机器- 拉取堆转储文件以及通过流量监控判断可能的问题接口 - 堆转储文件分析使用MAT或JProfiler等工具- 结合代码确认问题 - 修复代码或调整jvm配置(-XX:HeapDumpOnOutOfMemoryError)并上线 - 观测上线后机器指标gc-time、gc-count、olggen-used-percent)问题分类GC问题youngGC频繁youngGC的正常频率应该是1分钟10次左右。可以考虑增大年轻代的大小fullGC频繁fullGC的正常频率应该是一天一次左右。如果发生一般是存在问题和oom的处理思路类似。OOM问题stackOverFlow无限递归调用观察异常堆栈日志定位方法java heap space大对象或短时间大量对象通过分析堆转储文件中的类视图(包含类的实例数、自身大小和关联的所有实例大小定位问题类metaspace反射、动态代理等导致动态生成大量类元数据以反射为例当同一个反射方法被短时间执行16次jvm会进行优化生成对应反射接口的实现类的类元数据并存放到metaspace。这种问题通过堆转储文件不好定位因为可能动态生成的类元数据虽然多但占比不大。一般可以从近期代码变更中是否涉及反射、动态代理进行正向排查。解决思路一般是增加反射缓存比如频繁生成Method的场景就将Method进行缓存这样只会生成一次对应的类元数据、开启类卸载CMS垃圾回收器等。GC overhead limit exceeded俗称“垃圾回收过头”即垃圾回收占用了很多CPU时间片但是回收的内存又很少。一般是内存泄漏常见类的静态集合属性、threadLocal未执行remove方法或堆内存较小导致。实践案例java heap oom现象kds系统在营业高峰出现系统卡顿明显、用户操作响应慢甚至软件闪退的情况。排查思路观测软件日志寻找耗时较长的接口分析卡顿的原因通过gc日志排查是否存在频繁gc、full-gc的情况通过crash日志查看crash的直接原因以及报错堆栈。初步排查结果营业高峰系统频繁gc甚至full-gc导致产生STW现象所以出现系统卡顿和操作响应慢至于闪退主要是因为一些设备性能较差垃圾回收不过来就oom了。所有的初步原因其实都跟内存吃紧有关但是通过日志和对应接口代码走读暂时找不到造成内存吃紧的根因问题归因思路使用性能排查工具JProfiler对系统进程进行问题分析但该工具运行时会极大占用目标机器的性能所以可能会影响商家经营故而决定通过模拟问题商家的经营动作借助UI自动化测试进行压测同时使用JProfiler进行性能分析的策略分析结果通过分析堆转储文件借助JProfiler的类视图工具识别到一个配置类的实例个数和内存占比很大再进一步查看该类的引用链路定位到是一个查询菜品缓存的方法创建了较多该类的实例。再结合代码发现是该方法调用了框架提供的一个缓存查询方法该方法每次从缓存中查询时都会深拷贝一次数据从而导致产生大量缓存配置对象。至于为什么会深拷贝是因为框架提供的查询方法被很多模块调用有些模块查询到配置后会对配置进行修改所以为了不互相影响框架侧采取了深拷贝这种比较粗暴的方式优化方式业务侧自己再维护一个菜品配置缓存读取时不再深拷贝而直接使用该配置对象metaspace oom现象线上告警metaspace oom导致机器挂掉排查思路先止损进行机器禁用避免机器异常信息在注册中心更新不及时导致有新的请求仍然路有到问题机器同时进行扩容针对问题机器拉取自动dump的堆转储文件使用美团的线上分析工具进行分析分析结果堆转储文件中发现大量GeneratedMethodAccessorxxx类xxx是数字超过了30000个背景是java反射获取方法时如果某些方法短时间频繁调用jvm会进行优化不再采用反射的方式获取方法而通过直接生成该方法的代理类即GeneratedMethodAccessorxxx的方式直接调用新生成的代理类的方法来提高调用效率。这个类较多会导致在metaspace中产生较多的类元数据从而引发了metaspace内存占用的增长另外gc为什么没有很好地回收新增的类元数据呢通过查看jvm的启动参数发现metaspaceSize和MaxMetaspaceSize都是256MB这导致每次到达最大值才会进行GC如果该次GC回收效率不高就有可能导致生产的类元数据不够存放而OOM解决方案对反射频繁调用的Method进行缓存避免重复生成GeneratedMethodAccessorxxx类。同时修改jvm参数使得MaxMetaspaceSize大于metaspaceSize给gc预留一些容错空间

相关文章:

GC/OOM问题处理思路

原则 先止损,再分析。如果是灰度阶段,则直接回滚代码,保留一台留作分析;如果是全量阶段个别机器偶发,则禁用该机器。流程 保护现场(禁用机器)-> 拉取堆转储文件以及通过流量监控判断可能的问…...

[特殊字符] Meixiong Niannian画图引擎快速上手:10分钟完成环境部署与首图生成

Meixiong Niannian画图引擎快速上手:10分钟完成环境部署与首图生成 1. 项目简介 Meixiong Niannian画图引擎是一款专为个人用户设计的轻量化文本生成图像系统。这个项目基于先进的Z-Image-Turbo技术底座,并融入了专门优化的meixiong Niannian Turbo Lo…...

Z-Image-Turbo_Sugar脸部Lora入门教程:Gradio界面按钮功能逐项解读

Z-Image-Turbo_Sugar脸部Lora入门教程:Gradio界面按钮功能逐项解读 1. 教程概述 今天我们来学习如何使用Z-Image-Turbo_Sugar脸部Lora模型生成精美的甜系脸部图片。这个模型基于Z-Image-Turbo架构,专门针对Sugar风格的脸部特征进行了优化训练&#xff…...

寻音捉影·侠客行实战效果:1000条客服录音批量处理,关键词覆盖率98.2%,FP<0.5%

寻音捉影侠客行实战效果&#xff1a;1000条客服录音批量处理&#xff0c;关键词覆盖率98.2%&#xff0c;FP<0.5% 想象一下&#xff0c;你面前有1000条客服通话录音&#xff0c;总时长超过500小时。老板要求你在一天之内&#xff0c;找出所有提到“退款”、“投诉”和“升级…...

Gemma-3-12B-IT精彩案例分享:用Temperature/TopP参数精准控制输出质量

Gemma-3-12B-IT精彩案例分享&#xff1a;用Temperature/TopP参数精准控制输出质量 1. 引言&#xff1a;从“能用”到“好用”的关键一步 如果你用过一些大语言模型&#xff0c;可能会遇到这样的困惑&#xff1a;同一个问题&#xff0c;有时候回答得创意十足&#xff0c;有时候…...

通义千问3-4B响应延迟高?非推理模式部署优化实战教程

通义千问3-4B响应延迟高&#xff1f;非推理模式部署优化实战教程 1. 问题背景与模型介绍 通义千问3-4B-Instruct-2507是阿里在2025年8月开源的一款40亿参数指令微调模型&#xff0c;专门设计为"非推理"模式运行。这个模型最大的特点是去掉了传统的推理思考过程&…...

浦语灵笔2.5-7B自主部署:无需联网、离线运行的多模态VQA服务搭建

浦语灵笔2.5-7B自主部署&#xff1a;无需联网、离线运行的多模态VQA服务搭建 1. 引言&#xff1a;为什么你需要一个离线的“看图说话”助手&#xff1f; 想象一下这个场景&#xff1a;你正在处理一批产品图片&#xff0c;需要快速生成描述文案&#xff1b;或者&#xff0c;你…...

FaceRecon-3D保姆级教程:重建失败诊断——光照/遮挡/模糊问题排查表

FaceRecon-3D保姆级教程&#xff1a;重建失败诊断——光照/遮挡/模糊问题排查表 1. 引言&#xff1a;为什么你的3D人脸重建效果不理想&#xff1f; 你兴冲冲地打开FaceRecon-3D&#xff0c;上传了一张自拍&#xff0c;满心期待看到一个立体的自己&#xff0c;结果生成的UV纹理…...

BERT文本分割-中文-通用领域一文详解:从原理到Gradio前端完整实现

BERT文本分割-中文-通用领域一文详解&#xff1a;从原理到Gradio前端完整实现 1. 引言 你有没有遇到过这样的情况&#xff1a;读完一篇很长的语音转文字稿&#xff0c;感觉内容很好&#xff0c;但就是读起来特别累&#xff1f;整篇文章没有分段&#xff0c;密密麻麻的文字堆在…...

Qwen3-0.6B-FP8效果可视化:temperature滑动调节对回答多样性影响的直观演示

Qwen3-0.6B-FP8效果可视化&#xff1a;temperature滑动调节对回答多样性影响的直观演示 你有没有遇到过这样的情况&#xff1a;同一个问题问AI&#xff0c;它每次给出的回答都差不多&#xff0c;感觉有点死板&#xff1f;或者反过来&#xff0c;回答天马行空&#xff0c;完全不…...

⚖️Lychee-Rerank惊艳效果:0.876543高分文档识别+红/橙/绿三色阈值精准映射

⚖️Lychee-Rerank惊艳效果&#xff1a;0.876543高分文档识别红/橙/绿三色阈值精准映射 1. 工具介绍&#xff1a;本地化智能文档评分利器 Lychee-Rerank是一个专门为文档相关性评分设计的本地化工具&#xff0c;它能够智能判断查询语句与候选文档的匹配程度。想象一下&#x…...

DeepSeek-R1-Distill-Qwen-1.5B惊艳效果:算法时间复杂度分析+伪代码生成

DeepSeek-R1-Distill-Qwen-1.5B惊艳效果&#xff1a;算法时间复杂度分析伪代码生成 本文展示DeepSeek-R1-Distill-Qwen-1.5B模型在算法分析和代码生成方面的惊艳效果&#xff0c;所有案例均为实际生成结果。 1. 模型能力概览 DeepSeek-R1-Distill-Qwen-1.5B作为超轻量蒸馏模型…...

Qwen-Image-2512像素艺术服务部署:开源可部署+GPU算力优化双卖点解析

Qwen-Image-2512像素艺术服务部署&#xff1a;开源可部署GPU算力优化双卖点解析 1. 像素艺术生成新选择 最近在AI图像生成领域&#xff0c;像素艺术风格突然火了起来。这种复古又充满创意的艺术形式&#xff0c;让很多游戏开发者和数字艺术家找到了新的创作灵感。今天要介绍的…...

Stable Yogi Leather-Dress-Collection免配置环境:开箱即用的动漫皮衣生成镜像

Stable Yogi Leather-Dress-Collection免配置环境&#xff1a;开箱即用的动漫皮衣生成镜像 你是否也曾被那些酷炫的动漫角色身上的皮衣穿搭所吸引&#xff0c;想要自己动手创作&#xff0c;却被复杂的模型部署、权重加载和参数调整劝退&#xff1f;今天&#xff0c;我要介绍的…...

SQL刷题_牛客_SQL热题

SQL201 查找入职员工时间排名倒数第三的员工所有信息【简单】 SQL201 查找入职员工时间排名倒数第三的员工所有信息 窗口函数其他方法 # 怎么算倒数第三 如果倒数第123都是同一个日期&#xff0c;那算谁&#xff1f; # 从运行结果倒推看&#xff0c;日期需要去重 select *…...

M2LOrder轻量级优势:3MB模型仅需2GB RAM,树莓派4B可部署验证

M2LOrder轻量级优势&#xff1a;3MB模型仅需2GB RAM&#xff0c;树莓派4B可部署验证 1. 项目概述 M2LOrder是一个专门用于情绪识别与情感分析的开源服务&#xff0c;基于独特的.opt模型文件格式构建。这个项目的最大亮点在于其极致的轻量化设计——最小的模型仅3MB大小&#…...

SmolVLA开源镜像免配置部署指南:RTX 4090一键启动Web推理

SmolVLA开源镜像免配置部署指南&#xff1a;RTX 4090一键启动Web推理 你是不是也对机器人控制感兴趣&#xff0c;但一看到复杂的模型部署、环境配置就头疼&#xff1f;想体验一下让机器人“看懂”世界并执行指令的AI模型&#xff0c;却不知道从何下手&#xff1f; 今天&#…...

ChatGLM3-6B-128K开源大模型展示:Ollama部署后128K医疗器械说明书合规检查

ChatGLM3-6B-128K开源大模型展示&#xff1a;Ollama部署后128K医疗器械说明书合规检查 1. 模型介绍与核心优势 ChatGLM3-6B-128K是ChatGLM系列最新一代的长文本处理专家&#xff0c;专门针对超长文本理解场景进行了深度优化。这个模型最大的亮点是能够处理长达128K的上下文内…...

SenseVoice Small会议纪要生成:多人对话分离+发言人标注实战教程

SenseVoice Small会议纪要生成&#xff1a;多人对话分离发言人标注实战教程 1. 项目概述与核心价值 在日常工作中&#xff0c;会议记录是个让人头疼的问题。特别是多人讨论的场景&#xff0c;既要听清楚每个人说了什么&#xff0c;又要准确记录发言内容&#xff0c;往往需要专…...

Cosmos-Reason1-7B多场景部署案例:高校AI通识课+专业课双轨教学工具

Cosmos-Reason1-7B多场景部署案例&#xff1a;高校AI通识课专业课双轨教学工具 1. 引言&#xff1a;当AI推理遇上高校教学 高校教学正面临一个有趣挑战&#xff1a;既要让学生理解AI技术原理&#xff0c;又要让他们实际运用AI解决专业问题。传统教学工具要么太理论化&#xff0…...

Cosmos-Reason1-7B实操手册:模型加载失败时的GPU内存泄漏排查方法

Cosmos-Reason1-7B实操手册&#xff1a;模型加载失败时的GPU内存泄漏排查方法 1. 问题背景与现象分析 当部署Cosmos-Reason1-7B这类大型多模态模型时&#xff0c;GPU内存管理成为关键挑战。这个7B参数的视觉语言模型需要约11GB显存才能正常运行&#xff0c;但在实际部署中常遇…...

Qwen3-0.6B-FP8从零开始:3步完成vLLM服务部署与Chainlit Web界面调用

Qwen3-0.6B-FP8从零开始&#xff1a;3步完成vLLM服务部署与Chainlit Web界面调用 想快速体验一个轻量级但能力不俗的大语言模型吗&#xff1f;Qwen3-0.6B-FP8就是一个绝佳的选择。它虽然参数规模小&#xff0c;但在推理、对话和指令遵循方面表现相当出色。今天&#xff0c;我就…...

AIGlasses_for_navigation低成本GPU算力方案:RTX 3060上同时运行5个视觉模型

AIGlasses_for_navigation低成本GPU算力方案&#xff1a;RTX 3060上同时运行5个视觉模型 1. 引言&#xff1a;当智能眼镜遇上算力挑战 想象一下&#xff0c;你戴着一副智能眼镜走在街上&#xff0c;它能实时告诉你脚下的盲道走向&#xff0c;提醒你前方的红绿灯状态&#xff…...

Chord视频理解工具部署教程:模型权重加载路径与缓存管理

Chord视频理解工具部署教程&#xff1a;模型权重加载路径与缓存管理 1. 工具定位与核心价值 Chord不是又一个“能看视频”的AI玩具&#xff0c;而是一个真正为本地化、高精度、低风险视频分析设计的工程级工具。它不依赖云端API&#xff0c;不上传任何视频数据&#xff0c;所…...

Retinaface+CurricularFace入门指南:人脸特征向量维度与距离度量原理

RetinafaceCurricularFace入门指南&#xff1a;人脸特征向量维度与距离度量原理 你是不是也好奇&#xff0c;人脸识别系统到底是怎么判断两张照片是不是同一个人的&#xff1f;它凭什么说“这两个人相似度0.85&#xff0c;是同一个人”&#xff0c;或者“相似度只有0.2&#x…...

FireRedASR-AED-L开源模型实战:对接LangChain构建语音增强型RAG系统

FireRedASR-AED-L开源模型实战&#xff1a;对接LangChain构建语音增强型RAG系统 1. 引言&#xff1a;当语音识别遇上智能检索 想象一下这个场景&#xff1a;你手头有一堆会议录音、客户访谈或课程讲座的音频文件。你想快速找到其中讨论“项目预算”或“技术架构”的具体片段。…...

Qwen1.5-0.5B-Chat部署利器:ModelScope SDK自动拉取教程

Qwen1.5-0.5B-Chat部署利器&#xff1a;ModelScope SDK自动拉取教程 想快速体验一个轻量级的智能对话服务&#xff0c;但又担心模型太大、部署太麻烦&#xff1f;今天&#xff0c;我们就来解决这个问题。本文将带你一步步部署阿里通义千问家族中最“苗条”的成员——Qwen1.5-0…...

cv_resnet101_face-detection_cvpr22papermogface保姆级教程:Windows/Linux双平台部署指南

cv_resnet101_face-detection_cvpr22papermogface保姆级教程&#xff1a;Windows/Linux双平台部署指南 你是不是也遇到过这样的烦恼&#xff1f;想在自己的电脑上跑一个人脸检测模型&#xff0c;结果被各种环境配置、依赖安装、路径设置搞得焦头烂额。网上的教程要么太简单&am…...

Qwen3-ASR-0.6B部署案例:私有化部署至医院内网,保障患者语音数据安全

Qwen3-ASR-0.6B部署案例&#xff1a;私有化部署至医院内网&#xff0c;保障患者语音数据安全 1. 引言&#xff1a;当语音识别遇上医疗数据安全 想象一下这个场景&#xff1a;一位医生在查房时&#xff0c;用录音笔记录了患者的病情口述。回到办公室&#xff0c;他需要将这些语…...

Chord视觉定位模型效果展示:支持模糊描述‘看起来像椅子的东西’准确定位

Chord视觉定位模型效果展示&#xff1a;支持模糊描述‘看起来像椅子的东西’准确定位 1. 项目简介 想象一下&#xff0c;你正在整理手机里上千张照片&#xff0c;想找出所有“看起来像椅子的东西”——可能是公园的长椅、家里的餐椅、甚至是一个形状奇特的石头。传统方法需要…...