网易首页 > 网易号 > 正文 申请入驻

三年没爆的内存泄漏,被一次Java升级炸了出来

0
分享至

最近遇到个事,值得拿出来聊聊。

我们有个服务,功能特别简单:用户上传视频,后台截一帧生成封面。上线好几年,稳得像块砖头,监控常年全绿。

直到有一天,团队决定把 Java 从 8 升到 11,先灰度放了一部分流量。

升完没两天,运维告警就开始响:某几个容器隔一两天就被 OOM 干掉一次,自动重启。

第一反应肯定是查内存。诡异的地方来了——JVM 堆内存监控一切正常,堆用量平稳,GC 曲线健康,没有任何一条线告诉你"我要爆了"。可容器就是被系统以内存超限为由杀了。

堆没事,进程却因为内存被杀。

这两句话放一起,本身就是答案的一半。

接下来就是标准的排错流程,查了一圈全是死胡同:流量没变,代码没人碰过,堆调大调小也没用——因为问题根本不在堆里。

唯一确定的线索只有一条:问题是从切到 Java 11 那天开始的。一个没被改过的功能,仅仅因为运行环境换了个版本就开始漏内存,矛头只能指向那些看不见的地方。

后来终于找到了真凶。

缩略图功能底层用的是 JavaCV,封装了 OpenCV 和 FFmpeg。这类库有个特点:真正干活的是 C/C++ 写的原生代码,申请的内存是堆外内存,不归 JVM 堆管,堆监控自然看不见。

问题出在释放上。代码抓完视频帧、转完图,只调了 stop(),没调 release()。这俩不是一回事,stop() 停的是采集,release() 还的是原生内存。内存申请了,却没被显式还回去。

那为什么用了三年都没事?



这才是最精彩的地方。这个库当年靠 GC 兜底释放原生内存:给每个原生对象挂了个"清道夫",等 JVM 垃圾回收的时候,顺手把对应的堆外内存也释放掉。

Java 8 默认的 Parallel GC,年轻代回收非常频繁,每次回收都顺手触发这些清道夫,把忘记释放的堆外内存悄悄清掉了。泄漏一直存在,只是被高频 GC 盖住了。

换到 Java 11 默认的 G1 之后,情况反过来了。包装原生内存的 Java 对象本身极小,G1 不着急回收,它们能存活很久,清道夫迟迟不触发。堆外内存就一次上传、一次上传地往上堆,直到把整个容器的内存吃穿,被系统 OOM 掉。

所以那次升级本身没有错,它只是把盖子掀开了。

这个 bug 折腾了我们好几天,最后就带走三条:

第一,堆外内存泄漏,你的 JVM 监控是瞎的。所有盯着堆用量、GC 次数的仪表盘,对堆外内存一无所知。看到"进程被 OOM 杀了,但堆一切正常",第一时间就该往堆外想:native 库、DirectByteBuffer、线程栈、内存映射文件,全在监控视野之外。

第二,"一直没出事"不等于"没有 bug",可能只是有人替你扛着。这个泄漏三年没爆,只是旧 GC 的高频回收在替我们收尾。很多系统的稳定,都建立在某个你没意识到的隐性兜底上。哪天这个兜底被升级掉、被优化掉,账就一次性还给你。所以升级、重构、换框架之前,最该问一句:现在这套东西为什么能正常跑,靠的是不是一个我不知道的前提。

第三,native 资源,谁申请谁释放,写进 finally,别赌 GC。只要一个库的资源是堆外的——视频、图像、加解密、序列化——就把它当成文件句柄和数据库连接来对待,用完立刻显式关。指望 GC 帮你还堆外的债,迟早出事,而且是在你最想不到的时候,比如一次"无害"的升级。

工程里最危险的状态,不是报错了,而是看起来一切正常。报错至少会喊你,一个被兜底盖住的 bug,会安安静静待到某一天,等那个替你扛着的东西一撤,再一次性还给你。

你有没有遇到过那种"一直没事,一升级就炸"的诡异 bug?评论区聊聊,我看看谁的经历更离谱。

声明:内容由AI生成

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
威廉凯特合体出公务!庄重场合穿搭高级感拉满

威廉凯特合体出公务!庄重场合穿搭高级感拉满

墨薷桃桃
2026-08-31 09:56:42
广东排查椰子水生产企业:23家存在问题,5家被立案查处

广东排查椰子水生产企业:23家存在问题,5家被立案查处

21世纪经济报道
2026-09-02 18:40:21
又来一个!vivo创作者盛典定档9月7日,撞车小米华为

又来一个!vivo创作者盛典定档9月7日,撞车小米华为

泡泡网
2026-09-02 14:16:06
细思极恐!中国常用的一类降压药,可能让糖尿病患者肾脏风险高出33%!

细思极恐!中国常用的一类降压药,可能让糖尿病患者肾脏风险高出33%!

徐德文科学频道
2026-08-21 20:06:13
40岁刘文辉独闯蒋介石鸿门宴:你敢杀我,十万藏彝兵立刻反川

40岁刘文辉独闯蒋介石鸿门宴:你敢杀我,十万藏彝兵立刻反川

近史谈
2026-09-02 19:55:42
马龙复出夺冠,樊振东随时待命,王励勤多了两张王牌,奥运其实无忧

马龙复出夺冠,樊振东随时待命,王励勤多了两张王牌,奥运其实无忧

乒乓网国球汇
2026-08-15 02:03:06
晚饭七分饱被推翻了?医生发现:过了52岁,吃饭尽量要做到这5点

晚饭七分饱被推翻了?医生发现:过了52岁,吃饭尽量要做到这5点

芹姐说生活
2026-09-01 23:01:11
泽连斯基:安全时刻已结束,俄罗斯的天空正变得极其危险,乌克兰并不是在威胁民航;普京:简直是国家恐怖主义,我们有办法回应

泽连斯基:安全时刻已结束,俄罗斯的天空正变得极其危险,乌克兰并不是在威胁民航;普京:简直是国家恐怖主义,我们有办法回应

报人刘亚东
2026-09-02 15:46:28
美国共损失48架MQ-9!本来要被淘汰,却在伊朗战场打成“MVP”

美国共损失48架MQ-9!本来要被淘汰,却在伊朗战场打成“MVP”

金十数据
2026-09-01 10:50:13
17.6万 !特斯拉新车突然开售,真的有点香啊

17.6万 !特斯拉新车突然开售,真的有点香啊

科技堡垒
2026-08-31 09:56:30
华为交了份“上市公司不敢交”的财报:净利润腰斩、现金流负400亿

华为交了份“上市公司不敢交”的财报:净利润腰斩、现金流负400亿

大卫聊科技
2026-09-02 13:33:56
问题严重了?菲方宣布破船永不拖走后,不到48小时,南海划上禁区

问题严重了?菲方宣布破船永不拖走后,不到48小时,南海划上禁区

影孖看世界
2026-08-29 23:26:24
歼‑16诚意满满赴约,埃及转头追购阵风,歼-10手下败将凭啥?

歼‑16诚意满满赴约,埃及转头追购阵风,歼-10手下败将凭啥?

军机Nova
2026-09-03 00:10:05
27款亚洲龙全新换代!帅到没朋友,该不该等新款、还是抄底现款?

27款亚洲龙全新换代!帅到没朋友,该不该等新款、还是抄底现款?

沙雕小琳琳
2026-09-02 11:59:17
广东男篮完成重大调整!2米12盖帽王加盟,周鹏实力归来

广东男篮完成重大调整!2米12盖帽王加盟,周鹏实力归来

刘哥谈体育
2026-09-03 00:45:52
压哨终极突袭!曼联 4000 万强攻巴萨天才,苦等一夏完美补强

压哨终极突袭!曼联 4000 万强攻巴萨天才,苦等一夏完美补强

澜归序
2026-09-02 08:42:15
吉格斯:11年巴萨在我心中最强,如果无梅西我们当年有能力赢

吉格斯:11年巴萨在我心中最强,如果无梅西我们当年有能力赢

懂球帝
2026-09-02 17:04:32
中日若开战,将是地狱模式!全球终于清醒了:中国这次不是在演戏

中日若开战,将是地狱模式!全球终于清醒了:中国这次不是在演戏

叶葉夜
2026-08-31 11:23:21
劝退应届生事件后,星宇股份外包工涨薪1元/小时,中介:有争议舆论不好招人,所以涨薪

劝退应届生事件后,星宇股份外包工涨薪1元/小时,中介:有争议舆论不好招人,所以涨薪

每日经济新闻
2026-09-02 21:47:17
新《重案六组》开播,秒变大型翻车现场?“还我季洁”刷屏热搜

新《重案六组》开播,秒变大型翻车现场?“还我季洁”刷屏热搜

娱文速递
2026-09-01 14:13:30
2026-09-03 04:04:49
千纸鹤安安
千纸鹤安安
大自然的搬运工
105文章数 3关注度
往期回顾 全部

科技要闻

凌晨最强模型上新,Claude Fable 5.1发布

头条要闻

游客拍下疑冰崩画面:土石翻涌 山间有黑色物体涌出

头条要闻

游客拍下疑冰崩画面:土石翻涌 山间有黑色物体涌出

体育要闻

一次有奖问答,让他成为欧冠主帅

娱乐要闻

香港武打影星陈观泰离世,终年80岁

财经要闻

星宇股份的麻烦,才刚开始

汽车要闻

配双腔空悬+机械差速锁 传祺越7预售权益价17.18万起

态度原创

时尚
本地
亲子
家居
旅游

白衬衫不火了?早秋穿“棕色衬衫”更高级好看

本地新闻

昆明的雨,解锁汪曾祺的浪漫雨季

亲子要闻

为啥老人一定要给儿子带小孩儿!网友:这是看到过的很正确的解释

家居要闻

2026建博会(广州) 公装联探展交流活动

旅游要闻

张昌平畅想AI数字漫游:从盘龙城直达三星堆 铸造青铜大立人|名人大讲堂

无障碍浏览 进入关怀版