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

删除一行console.log后生产环境内存飙至99.8%,14小时排查真相

0
分享至

这是 DEV 社区 Summer Bug Smash 挑战的投稿。我删除了 payment worker 里的一行 `console.log`,合并 PR 后去倒了杯茶。十分钟后,PagerDuty 开始疯狂报警。 后台 Pod 的内存使用率飙到了 99.8%,出站 webhook 报出 orphan closure 错误,Postgres 里的行开始被不同用户的 payload 覆盖。我慌了,立刻 revert 了这个 commit,把 `console.log` 又加了回去。 然后就像变魔术一样……错误消失了。内存降回 180MB,一切恢复绿色。 回滚一个单行 PR 就能让生产环境自愈,这件事本身就让人脊背发凉。它说明你的架构根本不稳定——它只是靠偶然的副作用在硬撑。如果加一行 `console.log` 就能修好后端,那你依赖的是运气和操作系统的缓冲时序。 我花了 14 小时反复抓堆快照(`node --inspect`)、对比不同 GC 周期下的内存 dump,才搞清楚底层发生了什么。 当我移除那行 log 后,V8 的 JIT 优化被触发。在激进的垃圾回收过程中,V8 在后台回调还没写完 Redis 之前,就把父上下文标记为“已死亡”。回调最终解析到了一个无效的 scope context。 原始代码大致是这样的: ```js app.post('/api/checkout', async (req, res) => { const user = req.user; db.saveOrder(req.body).then(async (order) => { await telemetry.logTransaction(user.id, order.amount); }); return res.json({ status: "queued" }); }); ``` 问题在哪里?外层的 async 函数会在 `db.saveOrder` 事务完成之前就 return 响应,而 Promise 链里的回调持有 user 对象和请求上下文。移除 `console.log` 后,V8 认为这个上下文已经没有外部引用了,于是把它当作垃圾提前回收。实际上,后续的 `telemetry.logTransaction` 仍然需要它。 修复方式是用 Node.js 的 `AsyncLocalStorage` 来显式管理异步上下文: ```js import { AsyncLocalStorage } from 'node:async_hooks'; const asyncLocalStorage = new AsyncLocalStorage(); app.post('/api/checkout', async (req, res) => { const userId = req.user.id; const payload = req.body; try { const result = await asyncLocalStorage.run({ userId }, async () => { const order = await db.saveOrder(payload); await telemetry.logTransaction(userId, order.amount); return order; }); return res.json({ status: "queued", orderId: result.id }); } catch (error) { return res.status(500).json({ error: "checkout_failed" }); } }); ``` 关键点是:不要依赖隐式作用域存活,把事务内的关联数据用 `AsyncLocalStorage` 或权威事务句柄显式传递。还有一点,这次事故让我深刻理解了一个道理——在 Node.js 后端里,代码是给人和 GC 共同维护的。看似“多余”的日志行,可能正在帮你维持一些你还没意识到的生命周期约束。


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

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-07-28 00:05:11
57岁鲁豫新疆旅行宛若“26岁少女”,2套穿搭配色活泼,一眼惊艳

57岁鲁豫新疆旅行宛若“26岁少女”,2套穿搭配色活泼,一眼惊艳

明星私服穿搭daily
2026-08-02 15:55:41
4-3!松岛辉空惊天逆转 3次落后3次扳平 决胜局4-8连得7分绝杀

4-3!松岛辉空惊天逆转 3次落后3次扳平 决胜局4-8连得7分绝杀

念洲
2026-08-08 14:20:29
男女相处:轻轻碰一下女人,她有这两个反应,说明早就深爱你

男女相处:轻轻碰一下女人,她有这两个反应,说明早就深爱你

风起见你
2026-08-08 15:12:59
一枚“回旋镖”,击中王思聪

一枚“回旋镖”,击中王思聪

说财猫
2026-08-08 06:08:00
人这一生,最靠得住的不是钱,不是人脉,不是子女,而是......

人这一生,最靠得住的不是钱,不是人脉,不是子女,而是......

诗词天地
2026-08-08 06:00:49
李书福痛批某些国内车企:只会吹牛内卷,造车基础都做不好

李书福痛批某些国内车企:只会吹牛内卷,造车基础都做不好

周哥一影视
2026-08-08 05:29:06
热身赛印证残酷差距:看刘禹彤和张子宇根本就不是一个级别!

热身赛印证残酷差距:看刘禹彤和张子宇根本就不是一个级别!

涵有话说
2026-08-08 09:51:59
上海市中心原来350万的房子,挂牌1周后,卖多少钱?

上海市中心原来350万的房子,挂牌1周后,卖多少钱?

林子说事
2026-08-08 12:45:38
薄一波同志如果参与1955年授衔,应该授什么军衔?我认为这个军衔最合适

薄一波同志如果参与1955年授衔,应该授什么军衔?我认为这个军衔最合适

贱议你读史
2026-08-03 00:10:03
你在ktv遇见最恶心的客人是啥样?网友:稍稍有点辣眼睛,纯洁的慎看

你在ktv遇见最恶心的客人是啥样?网友:稍稍有点辣眼睛,纯洁的慎看

解读热点事件
2026-08-01 00:05:21
偶遇马頔夫妇欧洲旅行,李纯手拿3元饮料素颜出行,身高180的马頔打破胖的刻板印象

偶遇马頔夫妇欧洲旅行,李纯手拿3元饮料素颜出行,身高180的马頔打破胖的刻板印象

可乐谈情感
2026-08-08 10:38:37
陈冲自曝19岁被侵犯!隐忍43年终于开口,书中那段描写信息量太大

陈冲自曝19岁被侵犯!隐忍43年终于开口,书中那段描写信息量太大

娱说瑜悦
2026-08-07 18:16:11
马斯克:地球最大芯片工厂来了,规模相当于50个五角大楼

马斯克:地球最大芯片工厂来了,规模相当于50个五角大楼

次元君情感
2026-08-08 06:09:22
失联第11天,南太行深山发现一顶帽子

失联第11天,南太行深山发现一顶帽子

音乐时光的娱乐
2026-08-08 08:21:58
热情好客李刚仁,为前往首尔的马竞队内约80人设宴

热情好客李刚仁,为前往首尔的马竞队内约80人设宴

懂球帝
2026-08-07 18:50:18
印军高官自爆家丑,怒斥印度奸商以好充次,竟用中国零件冒充国产

印军高官自爆家丑,怒斥印度奸商以好充次,竟用中国零件冒充国产

小七七七七
2026-08-08 17:15:51
周星驰《功夫女足》超越梁朝伟《捉妖记2》升至中国票房榜第38名

周星驰《功夫女足》超越梁朝伟《捉妖记2》升至中国票房榜第38名

喜欢历史的阿繁
2026-08-08 15:50:17
第一波台风雨已经上岸,“白海豚”影响上海时间长→

第一波台风雨已经上岸,“白海豚”影响上海时间长→

上海预警发布
2026-08-08 10:56:22
上热搜!湖人官方盘点冠军组合,故意漏掉詹姆斯引发球迷不满!

上热搜!湖人官方盘点冠军组合,故意漏掉詹姆斯引发球迷不满!

爱体育
2026-08-07 23:45:10
2026-08-08 17:56:49
我是一个养虾人
我是一个养虾人
有态度网友ytd
389文章数 72关注度
往期回顾 全部

科技要闻

SpaceX最快下周完成600亿美元收购Cursor

头条要闻

男演员崩溃自述:富婆带资进组当女主 强加60余场吻戏

头条要闻

男演员崩溃自述:富婆带资进组当女主 强加60余场吻戏

体育要闻

29岁克拉克死因公布:吸食海洛因与可卡因

娱乐要闻

萧敬腾坦白!与大14岁妻子选择丁克

财经要闻

一枚“回旋镖”,击中王思聪

汽车要闻

越7全球首秀 传祺开始进攻方盒子越野

态度原创

教育
游戏
家居
时尚
房产

教育要闻

教育部刚刚发布2026暑期新规

《火焰纹章》系列销量引玩家担忧:新作前景太难了

家居要闻

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

这届年轻人,扎进酒吧“上夜校”

房产要闻

单日狂卖35亿!两大央企重仓,三亚土拍又爆了!

无障碍浏览 进入关怀版