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

Yarn build占用100%CPU导致EC2实例上React应用构建卡死问题求助

问题根因
  • 你使用的t2.small属于AWS突发性能型实例,仅配备1vCPU、2GiB内存,基线CPU性能仅为20%,短时间超过基线性能会消耗CPU积分,积分耗尽后CPU会被强制限流到基线水平,直接导致构建任务阻塞甚至永久卡死
  • Node.js生态的构建工具(包括webpack、CRA默认构建工具、esbuild等)默认会以当前设备CPU核心数作为并行任务数上限,1vCPU环境下多任务抢占CPU资源,再加上构建过程中内存不足触发swap交换,进一步拉高CPU占用
  • 本地Mac设备CPU核心数、内存都远高于t2.small,因此不会触发资源瓶颈
可落地的解决方案

1. 限制构建过程的并行任务数

在你的yarn构建命令前添加环境变量限制并行数和内存上限:

# 限制Node堆内存为1.5G、并行任务数为1,适配单核心CPU环境
NODE_OPTIONS=--max-old-space-size=1536 yarn build

如果使用的是Create React App创建的项目,还可以额外指定并行压缩的worker数量:

GENERATE_SOURCEMAP=false TERSER_PARALLEL=false yarn build

关闭SourceMap生成和并行压缩可以大幅降低CPU和内存消耗。

2. 调整EC2实例配置(可选)

如果需要长期在实例上执行构建任务,建议更换为非突发型的通用实例,比如t3.small(基线性能提升到30%、CPU积分积累速度更快)或者c5.large(计算优化型实例,适合编译场景)。如果不想调整实例规格,可以在EC2控制台将t2实例的无限积分模式打开,避免CPU积分耗尽后被限流。

3. 优化构建执行逻辑

  • 把项目中不需要的构建插件、静态资源压缩规则临时关闭,仅在生产发布环节开启
  • 不要同时在同一实例上执行多个应用的构建任务,逐个执行避免资源抢占

内容的提问来源于stack exchange,提问作者Bogdan Klochko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:39:00