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

如何诊断生产环境Node.js应用的CPU与内存占用异常

摘要
  • 基于Node.js v16(Docker镜像node:16)的API部署于配备8GB内存、2个vCPU的EC2实例
  • CPU占用率达200%(docker stats显示)
  • 内存占用为1.1GB(docker stats显示)
  • 堆快照仅显示132MB已使用
  • Performance面板未发现长时间运行的CPU任务
  • 高资源占用期间应用响应正常
问题描述

今日,监控系统告警显示,部署在AWS EC2实例Docker中的生产环境Node.js应用出现异常100% CPU占用。

使用htop检查实例后,发现两个node进程占用大量CPU。docker stats进一步显示该Node.js API服务占用了200%的CPU资源(因实例有2个vCPU)。

在此期间,HTTP请求时长监控显示正常,平均响应时间为30ms。

性能分析

为主动排查潜在问题,我现在使用--inspect=127.0.0.1:9229参数启动生产环境Node.js进程。

通过Chrome调试工具的Memory和Performance面板,我在异常期间收集了采样数据。

内存(Memory面板)

Docker报告应用占用1.2GB内存,但内存堆快照显示堆内存仅使用132MB。

(内存汇总图表)

CPU(Performance面板)

CPU图表未发现耗时较长的进程,最密集的任务仅耗时177ms,且仅出现几次。

当前状态

为便于诊断,我未重启应用。当前CPU占用率低于10%,但docker stats显示内存仍占用1.1GB。

由于高CPU占用的根因未知,难以复现该错误进行进一步排查。有趣的是,应用在CPU占用达200%时仍保持良好延迟。

总结

我的分析尚无结论,可能存在操作不当导致结果误导,现寻求帮助诊断此次CPU峰值及当前内存占用过高问题。

我已保存性能分析数据,以备后续分析使用。

内容的提问来源于stack exchange,提问作者Pedro Rambo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:20:05