当在多核处理器集群的NodeJS I usually see examples saying -的NodeJS - 集群工人的最佳数量
const numCPUs = require('os').cpus().length;
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
我的问题是 -
如果多核处理器上运行的网络应用程序与反向代理终止SSL(CPU密集型),gzipping(CPU密集型)和做其他的东西+还有其他服务器做主要nodejs服务器的CPU密集型工作,是产生尽可能多的工人作为CPU核心(对于主节点服务器)?
应该运行哪些测试来找出最佳工人数量?
由于您没有提供任何关于您的任何流程在任何特定负载下的CPU需求方面的定量数据,因此如果不设计代表性的负载测试并以几个不同的数量运行它,则无法回答您的问题nodejs最多可处理numCPU,并查看哪个能够为您提供最佳的整体吞吐量。即使你有一些有意义的定量数据,你仍然可能需要运行测试来验证你的决定。 – jfriend00
一对夫妇太多的过程可能不足以解决问题。没有足够的空间留给你CPU和完全浪费的容量。太多的进程只是增加了几个上下文切换来交换它们之间的CPU。 – jfriend00
我在过去的生产中使用我的答案中找到的信息实现了这个确切的事情。如果您还有其他问题,请告诉我。它被@ jfriend00降低了,但我可以向你保证这个解决方案确实有效,而且生产力强劲。 – arboreal84