Node.js 无法运行多个节点子进程而不会阻塞DigitalOcean

Node.js 无法运行多个节点子进程而不会阻塞DigitalOcean,node.js,parallel-processing,digital-ocean,puppeteer,puppeteer-cluster,Node.js,Parallel Processing,Digital Ocean,Puppeteer,Puppeteer Cluster,我一直在努力在DigitalOcean上运行多个木偶演员实例,但运气不佳。我可以使用诸如之类的工具同时运行~5,但由于某种原因,整个过程都因没有什么有用的消息而受阻。因此,我转而在没有任何附加库的情况下生成~5个子进程——只生成傀儡程序本身。同样的问题。没有有用错误的阻塞 我可以在本地很好地运行所有这些作业,但在部署之后,我遇到了困难。所以,我的直觉是这是一个资源/性能问题,但我不能肯定 我在数字海洋上运行一个1GB和3CPUs的水滴 基本上,我只是在寻找解决类似问题的方法。有没有一种方法可以让

我一直在努力在DigitalOcean上运行多个木偶演员实例,但运气不佳。我可以使用诸如之类的工具同时运行~5,但由于某种原因,整个过程都因没有什么有用的消息而受阻。因此,我转而在没有任何附加库的情况下生成~5个子进程——只生成傀儡程序本身。同样的问题。没有有用错误的阻塞

我可以在本地很好地运行所有这些作业,但在部署之后,我遇到了困难。所以,我的直觉是这是一个资源/性能问题,但我不能肯定

我在数字海洋上运行一个1GB和3CPUs的水滴


基本上,我只是在寻找解决类似问题的方法。有没有一种方法可以让我确信我正在撞上资源墙?我试过pm2和DO仪表板图表,但我觉得这些都遗漏了很多信息,或者我完全遗漏了其他信息

最可能的情况是内存不足,5个木偶进程对于1GB虚拟机来说太多了

你可以跑

grep -i 'killed process' /var/log/messages

确认OOM杀手终止了您的进程。

这里是《木偶玩家群》的作者。您是对的,除了您的操作系统,1 GB的内存可能不足以运行5个浏览器窗口(或选项卡),甚至可能不足以运行其他后台任务

以下是您应该检查的资源列表:

  • 内存:在应用程序运行时,使用类似的工具检查内存使用情况
  • CPU:同样,您可以使用
    htop
    ,3个VCPU应该足够5个窗口使用
  • 磁盘空间:使用类似
    df
    的工具检查磁盘上是否有足够的空间。我知道很多情况下,磁盘空间不足(比如一些旧内核填满了磁盘),Chrome至少需要一些空间来运行
  • 网络吞吐量:问题很少出现,但有时网络没有足够的带宽来支持许多开放式浏览器。使用类似于
    nload
    的工具检查网络吞吐量

要使用
htop
nload
,可以在后台启动脚本(
node script.js&
)或使用终端多路复用器(如)。资源问题应该很容易被发现。

谢谢,我会试试看!您的
htop
建议帮助解决了问题!神奇的,有用的工具。发现CPU使用率是我低估的主要因素。我相应地调整了液滴的大小,现在运行非常可靠。再次感谢您的洞察力!