我正在使用 has5120 CPU
和8192 Memory
. 有时在重负载下运行时(使用 S3 压缩大量图像imagemin
或使用 S3 同步将文件从 S3 复制到本地计算机)我会收到ENOMEM
错误消息。
这会导致 ECS 实例崩溃。
S3 同步命令通过 child_process spawn 执行,而 imagemin 包还生成一个子进程以压缩图像。 两个错误都显示在下面
(node:23) UnhandledPromiseRejectionWarning: Error: spawn ENOMEM
at ChildProcess.spawn (internal/child_process.js:403:11)
at spawn (child_process.js:553:9)
at new SpawnTimeout (/app/src/utils/SpawnTimeout.ts:33:25)
at s3Cp (/app/src/utils/s3.utils.ts:62:24)
at copyFile (/app/src/utils/s3.utils.ts:52:10)
at executeImageCompression (/app/src/processors/Processor.ts:63:9)
我尝试增加 ECS 资源并添加自定义-max-old-space-size
,但没有帮助。
我看到了这篇文章 - Node.js catch ENOMEM error throw after spawn
但是我无法--memory-swap
在 docker 中配置参数,因为部署是由其他人控制的。
请告诉我如何解决这个问题?