Node.js 应用故障排查手册 —— 雪崩型内存泄漏问题( 八 )

结尾

本节的给大家展现了对于线上 Node.js 应用出现瞬间 Crash 问题时的排查思路 , 而在最小化复现 Demo 对应的那个真实线上故障中 , 实际上是拼接的 SQL 语句非常大 , 大小约为 120M , 因此首先导致数据库操作失败 , 接着数据库操作失败后输出的 DatabaseError 对象实例上则原封不动地将问题 SQL 语句设置到属性上 , 从而导致了 ctx.logger.error(error) 时堆内存的雪崩 。

在 Node.js 性能平台 提供的 核心转储告警 + 在线分析能力 的帮助下 , 此类无法获取到常规 CPU Profile 和堆快照等信息的进程无故崩溃问题也变得有迹可循了 , 实际上它作为一种兜底分析手段 , 在很大程度上提升了开发者真正将 Node.js 运用到服务端生产环境中的信心 。

作者:奕钧

阅读原文

推荐阅读