node.js --max-old-space-size是否包含分叉的进程?

问题描述 投票:7回答:1

我正在解决node.js应用程序中的内存不足错误,并在启动--max-old-space-size以将大小设置为4096MB时使用node参数,最大设置为https://github.com/nodejs/node-v0.x-archive/wiki/FAQ(我可以找不到当前版本的node.js的模拟文档。

我想知道的是,是否对该单个node.js脚本使用的所有内容都施加了4096MB的限制,或者是否为每个进程分配了4096MB?

换句话说,如果我从脚本内部fork()其他进程,每个分叉的进程是否都可以使用4096MB,还是它们都从同一4096MB池中提取?

javascript linux node.js v8
1个回答
11
投票

我的团队有同样的问题,所以我们在登台服务器上对此进行了测试。我们将本机节点cluster模块与forever用作守护程序。

对于出现在htop中的每个分支过程,我们可以看到--max-old-space-size标志被传递了。每个子进程都有标志,包括稍后在应用程序中分叉的进程。

我们不需要通过cluster模块本身手动传递标志。

换句话说,如果我从脚本内部fork()其他进程,每个分叉的进程是否都可以使用4096MB,或者它们都从同一个4096MB池中提取?

我相信我们当时运行的测试就是这种情况。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.