當在多核處理器集羣的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