Pm2集群模式,理想的工人数量?

时间:2015-10-03 22:58:28

标签: pm2

我使用PM2来运行我的nodejs应用程序。

在群集模式下启动时#14; pm2启动服务器-i 0":PM2将自动生成与CPU内核一样多的工作程序。

理想的工人数量是什么?为什么?

1 个答案:

答案 0 :(得分:5)

  

小心上下文切换   在计算机上运行多个进程时,请尝试确保每个CPU核心一次只能由单个应用程序线程忙碌。作为一般规则,您应该寻找产生N-1个应用程序进程,其中N是可用CPU核心的数量。这样,每个进程都可以保证获得一个核心的好片段,并且内核调度程序有一个备用服务器可以运行其他服务器任务。另外,尽量确保服务器在Node.JS应用程序之外运行很少或没有工作,因此进程不会争夺CPU。

     

我们错误地将两个繁忙的node.js应用程序部署到我们的服务器,这两个应用程序各自产生N-1个进程。应用程序的进程开始激烈地竞争CPU,导致CPU负载和使用量急剧增加。即使我们在强大的8核服务器上运行这些服务器,我们也因为上下文切换而付出了明显的代价。上下文切换是CPU暂停一个任务以便在另一个上工作的行为。当上下文切换时,内核必须在一个进程加载时暂停所有状态,并为另一个进程执行状态。在简单地减少应用程序生成的进程数量以使它们共享相同数量的核心之后,负载显着下降:

https://engineering.gosquared.com/optimising-nginx-node-js-and-networking-for-heavy-workloads