You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

除内存与CPU泄漏外,Node.js(Express)服务器宕机原因排查

问题:Node.js Express BFF服务器周期性宕机且响应时长递增(非资源耗尽)

问题描述

我为React.js站点搭建了基于Node.js(Express.js)的BFF服务器,负责SSR渲染、请求代理及Redis页面缓存。近期出现每约2天服务器宕机的异常:重启后服务响应时长会随运行时间逐渐变长,但监控数据显示内存仅占用30%、CPU占用20%,无资源耗尽迹象。由于是大型生产站点,无法构建最小复现示例。

排查过程

【更新1】宕机触发原因

  • 服务器宕机并非自身崩溃,而是Kubernetes因连续3次根路径GET请求存活检查失败,主动杀死了容器
  • 站点未使用自建数据库,但每次浏览器GET请求会调用约6个第三方API接口

【更新2】深层问题定位

接入OpenTelemetry进行链路追踪后发现,超时请求中存在耗时极长的tcp.connect和tls.connect操作,由此推测是HTTP连接池不足,导致新请求需要频繁建立新连接,最终引发请求阻塞、存活检查超时。

解决方法

确认为连接不足问题后,通过以下方案解决:

  • 为node-fetch开启keepAlive配置,实现HTTP长连接复用,减少重复建立TCP/TLS连接的开销
  • 优化第三方API请求的缓存策略,降低重复请求频次

总结建议

强烈建议遇到同类问题的开发者优先为项目接入遥测工具(如OpenTelemetry),通过链路追踪定位深层性能瓶颈,避免仅依赖基础资源监控(CPU、内存)误判问题根源。

内容的提问来源于stack exchange,提问作者Konstantin Pershin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:35:26