设想:
使用主脚本多次生成可变数量的子进程,以便对服务器执行负载测试。
主脚本最初生成它可以生成的所有子进程(根据其配置设置),然后当子进程退出时,如果配置请求更多运行,则将启动新的子进程。
我看到的是在尝试启动第 83 个子进程时立即失败。 83?
我没有做任何事情来显式关闭作为子生成过程的一部分打开的文件,但大概这不是打开代码的工作,而是 child_processes 模块代码的工作?
我很好奇 82 个子进程的神奇数字。这似乎表明我的系统上的节点限制或节点的某种组合?
理想情况下,我对这个问题的答案缺乏了解,或者有人可以建议一种替代方法来启动不会遇到此问题的脚本子进程?
我也有兴趣了解 NodeJS 即将推出的 Web Worker API 的状态。有人知道这件事吗?
细节:
- NodeJS v0.4.7
- Mac OS X v10.6.7
- ulimit -n = 256
- 将成功运行的生成子级的幻数 = 82
(这意味着 > 82 个生成的进程将抛出“打开文件过多”错误)
谢谢你的帮助。
我的猜测是系统正在按照您所说的进行操作。 82 个进程意味着每个进程打开 3 个文件。标准输入、标准输出、标准错误。砰。您仅使用标准 3 个文件描述符就达到了 ulimit。使用 ulimit -n 512 运行,我敢打赌你将能够运行两倍的孩子。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)