群集模式下的PM2在运行时会产生相同数量的类实例吗?

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

我想知道在集群模式下运行节点进程是否意味着我正在运行多个类和超时循环实例。其中一个最令人担忧的例子是木偶操纵者,它会访问外部网站以获取信息并更新我们的数据库。

我正在AWS上的t2.medium上运行它。如果我在群集模式下运行我的节点应用程序,它会炸掉CPU使用率吗?

遗憾的是,我自己无法对此进行广泛的测试。我在天堂里没有足够的权限,如果我用尽所有的CPU积分,那么剩下的时间我就什么也做不了哈哈。

node.js puppeteer pm2
1个回答
1
投票

是的,如果以群集模式运行应用程序,PM2将使用Node.js Cluster module为每个实例生成一个线程。如果你在每个实例中启动一个浏览器,这可能很快就会加起来并且可能会像你说的那样“炸掉CPU”。

您可以使用-i参数(docs)限制正在运行的实例数:

示例(将工人数量限制为2):

pm2 start crawler.js -i 2

请记住,您的Node.js实例将或多或少地空闲(假设您没有在那里进行任何复杂的计算),因为浏览器正在进行实际工作。可能是使用库来处理pool of browsers的选项(免责声明:我是链接库的作者)。这将把处理多个浏览器的复杂性放入您的应用程序中,从而在测试和删除PM2集群模式的“复杂性层”时更容易估计应用程序的内存/ CPU使用率。

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