使用 Node JS child_process.spawn 运行脚本时打开文件过多

2024-07-04

设想:

使用主脚本多次生成可变数量的子进程,以便对服务器执行负载测试。

主脚本最初生成它可以生成的所有子进程(根据其配置设置),然后当子进程退出时,如果配置请求更多运行,则将启动新的子进程。

我看到的是在尝试启动第 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(使用前将#替换为@)

使用 Node JS child_process.spawn 运行脚本时打开文件过多 的相关文章

随机推荐

  • 如何连接 COM 事件调度程序?

    VBIDE API 揭示了令人惊奇的神秘之处 dispVBComponentsEvents接口 除其他外 其中看起来像我可以用它来捕获 VBE 中各种有趣的事件 因此 我在一个类中实现了该接口 该类旨在捕获事件并引发 正常 net 事件以供
  • awk 变量赋值语句需要解释

    好吧 言归正传 这是代码 我对代码进行了一些格式化以便于阅读 awk t 0 0 t 0 print 0 value of 0 is 0 0 t 0 print 0 value of 0 is 0 0 t 0 print 0 value o
  • Shell 脚本在延迟后生成进程

    如何在 shell 脚本延迟后生成进程 我希望命令在脚本启动 60 秒后启动 但我想继续运行脚本的其余部分 而不先等待 60 秒 想法是这样的 bin sh Echo A 60 seconds later but without block
  • 使用 Appium 和 Ruby 测试 iOS 应用程序时等待元素加载?

    我正在测试一个iOS应用程序 登录后无法与元素交互 因为Appium运行得太快了 有人可以给我指出一个使用 WebDriverWait 风格等待 Appium iOS 测试的示例吗 最好用红宝石 Thanks 这对我有用 但我是 Appiu
  • 在 TextInputLayout 中显示密码图标触及基线

    I had some problem with my show password icon in TextInputLayout with android inputType textPassword Right now it is sho
  • 终极Java版本表(J2EE、Java EE、Servlet、JSP、JSTL)

    我正在寻找 Java EE 或以前称为 J2EE 和 Java SE 的组件分解 E g J2EE 1 3 Servlet 2 3 JSP 1 2 JSTL 1 0 J2EE 1 4 Servlet 2 4 JSP 2 0 JSTL 1 1
  • 如何在切换到 vim 正常模式时自动更改键盘布局?

    有时我使用 vim 编写非美国文本 当我想在正常模式下使用任何命令时 我需要将布局更改为美国 可以自动做到这一点吗 附言 我可以像这样进行映射this http www vim org scripts script php script i
  • id 是 python 中的关键字吗?

    我的编辑器 TextMate 显示id使用与我常用的变量名称不同的颜色 当用作变量名称时 是关键字吗 我不想遮蔽任何关键字 id不是一个keyword在Python中 但它是一个的名字内置功能 http docs python org li
  • 迁移到新 csproj 格式的 WPF 应用程序上未定义 RunCommand 属性

    我正在尝试将旧 csproj 格式构建的 WPF 应用程序迁移到为 VS2017 定义的新 csproj 格式 我已经能够编译该应用程序 但是当我尝试在 VS2017 下的调试器中启动它时 我收到以下错误消息 无法运行您的项目 未定义 Ru
  • 如何将node.js应用程序转换为cordova

    我们建造了一个node js适用于台式机和平板电脑的应用程序 它是完全基于网络的应用程序 现在我计划在中实现与本机应用程序相同的应用程序android using Apache cordova 在项目目录下 我们有node modules
  • 相对于当前日期对 Java 集合进行排序

    我想相对于当前日期对日期列表进行排序 例如列表中有下一项 10 01 2018 10 20 2018 10 14 2018 10 02 2018 当前日期是10 08 2018 结果应该是按下一个顺序升序排列的数组 10 14 2018 1
  • 基本镜面着色

    我正在使用一个生成阴影球体的简单代码 我还没有完全理解数学 但我在玩代码时正在弄清楚它 我想知道如何根据这段代码实现镜面反射着色 有什么建议么 for y 0 y
  • 根据所选付款方式更改 WooCommerce 提交结帐按钮文本

    I tried 更改 WooCommerce 中特定付款方式的结帐提交按钮文本 https stackoverflow com questions 45739331 change checkout submit button text fo
  • woocommerce 电子邮件通知中的 get_post_meta

    我试图从 woocommerce 电子邮件模板中的订单获取一些数据 但 get post meta 只是返回 false 此代码适用于感谢页面 我在这上面花了太多时间 任何帮助 将不胜感激 谢谢 global post echo test
  • 有没有可靠的方法在 IE11 中使用 ctx.drawImage() ?

    我有一个脚本 可以根据数据查询创建动态 SVG 图形 我需要将它们粘贴到 PDF 中 为此我使用 jsPDF 不幸的是 jsPDF 自己的 addSVG 似乎不起作用 所以我花了一些时间尝试使用画布将 SVG 转换为 PNG 我似乎可以将
  • “部署到多个环境”的 Firebase Functions 版本

    正如这里所建议的 https firebase googleblog com 2016 07 deploy to multiple environments with html https firebase googleblog com 2
  • 删除超过 7 天的文件

    我看过一些帖子删除特定文件夹中的所有文件 不是文件夹 但我根本不明白它们 我需要使用 UNC 路径并删除所有超过 7 天的文件 Mypath files data APIArchiveFolder 有人有快速脚本 可以专门输入上面的路径来删
  • SonarQube 不会通过 Gradle 显示每个文件的完全覆盖类的详细报告

    我正在 IntelliJ Java IDE 中运行 Gradle 构建 这SonarQube 跑步者 http www gradle org docs current userguide sonar runner plugin htmlGr
  • Eclipse默认运行eclipse插件headless

    我有一个 Eclipse 插件项目 它通过打开 Eclipse UI 来运行 我添加了一个扩展 org eclipse core runtime applications 为了某些测试目的而无头运行该插件 现在 如果我从上下文菜单运行选项运
  • 使用 Node JS child_process.spawn 运行脚本时打开文件过多

    设想 使用主脚本多次生成可变数量的子进程 以便对服务器执行负载测试 主脚本最初生成它可以生成的所有子进程 根据其配置设置 然后当子进程退出时 如果配置请求更多运行 则将启动新的子进程 我看到的是在尝试启动第 83 个子进程时立即失败 83