Javascript nodejs-集群中的最佳工作人员数量
在多核处理器上群集节点时-Javascript nodejs-集群中的最佳工作人员数量,javascript,node.js,performance,worker,Javascript,Node.js,Performance,Worker,在多核处理器上群集节点时- const numpus=require('os').cpus().length; for(设i=0;i
const numpus=require('os').cpus().length;
for(设i=0;i
我的问题是-
(CPU负载/内核数)
应低于1
尝试为您的机器提供很少的不同服务/进程。一开始这可能看起来很浪费,但它通过限制级联故障的影响,帮助MMTD和MMTR处理事件
注意:这个问题通常最好在另一个Stack Exchange站点上提出
(CPU负载/内核数)
应低于1
尝试为您的机器提供很少的不同服务/进程。一开始这可能看起来很浪费,但它通过限制级联故障的影响,帮助MMTD和MMTR处理事件
注意:这个问题通常最好在另一个Stack Exchange站点上提出。因为您没有提供关于任何进程在任何特定负载下的CPU需求的定量数据,如果不设计一个具有代表性的负载测试,并使用多个不同数量的nodejs进程(最多
numpus
)运行它,看看哪一个进程提供了最佳的总体吞吐量,就无法回答您的问题。即使你有一些有意义的定量数据,你仍然可能需要运行测试来验证你的决定。多几个过程可能不是问题,而是不够。没有足够的内存会导致CPU闲置和容量完全浪费。太多的进程只是添加了几个上下文开关来在它们之间交换CPU。我在过去的生产中使用我的答案中找到的信息实现了这一点。如果你还有任何问题,请告诉我。它被否决了by@jfriend00,但我可以向您保证,此解决方案确实有效,并且具有强大的生产能力。由于您没有提供任何关于任何进程在任何特定负载下的CPU需求的定量数据,如果不设计一个具有代表性的负载测试,并使用多个不同数量的nodejs进程(最多numpus
)运行它,看看哪一个进程提供了最佳的总体吞吐量,就无法回答您的问题。即使你有一些有意义的定量数据,你仍然可能需要运行测试来验证你的决定。多几个过程可能不是问题,而是不够。没有足够的内存会导致CPU闲置和容量完全浪费。太多的进程只是添加了几个上下文开关来在它们之间交换CPU。我在过去的生产中使用我的答案中找到的信息实现了这一点。如果你还有任何问题,请告诉我。它被否决了by@jfriend00,但我可以向您保证,此解决方案确实有效,而且生产能力很强。这似乎无法回答OP提出的任何问题。他们的问题是关于在同一台主机上运行大量使用CPU的其他进程的情况。问题是如何优化总吞吐量,而不仅仅是NodeJ工作。如果可能的话,我建议将每个节点进程放在一个独占的核心中。OP是询问以集群形式运行多少NodeJ进程。操作系统将决定亲和力。当服务器上发生许多其他事情时,您不能将所有CPU都分配给NodeJ。默认情况下,操作系统将决定亲和性,但您也可以。这就是我的观点的意义。这就是我们公司的设置。你完全忽略了问题的要点,即在同一台主机上有几个其他进程在做CPU密集型工作。你基本上还没有回答这些问题。您的回答就像主机上除了nodejs之外没有其他操作一样。事实并非如此,这似乎并没有回答OP提出的任何问题。他们的问题是关于在同一台主机上运行大量使用CPU的其他进程的情况。问题是如何优化总吞吐量,而不仅仅是NodeJ工作。如果可能的话,我建议将每个节点进程放在一个独占的核心中。OP是询问以集群形式运行多少NodeJ进程。操作系统将决定亲和力。当服务器上发生许多其他事情时,您不能将所有CPU都分配给NodeJ。默认情况下,操作系统将决定亲和性,但您也可以。这就是我的观点的意义。这就是我们公司的设置。你完全忽略了问题的要点,即在同一台主机上有几个其他进程在做CPU密集型工作。你基本上还没有回答这些问题。您的回答就像主机上除了nodejs之外没有其他操作一样。这里的情况并非如此。
const numCPUs = require('os').cpus().length;
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}