在nodejs api doc中,它说
群集模块支持两种分发传入的方法 连接。
第一个(除了Windows之外的所有平台上的默认值), 是循环方法,主进程监听a 端口,接受新连接并在工作人员之间分配它们 以循环方式,一些内置智能避免 重载工作进程。
第二种方法是主进程创建listen socket并将其发送给感兴趣的工作人员。然后工人接受了 传入连接直接。
理论上,第二种方法应该能够提供最佳性能。在 然而,由于实践,分配往往非常不平衡 操作系统调度程序变幻莫测。已观察到载荷在哪里 超过70%的连接只在两个进程中结束 总共八个。
我知道PM2正在使用第一个,但为什么它不使用第二个?仅仅因为unbalnced distribution
?感谢。
答案 0 :(得分:0)
当每个子进程试图“抓住”发送的套接字主机时,第二个可能会增加CPU负载。