簡體   English   中英

在docker容器內運行時,Node.js集群模塊無法使用所有cpu內核

[英]Node.js cluster module cannot use all the cpu cores when running inside docker container

在我的物理機器上運行Node.js集群模塊時, os.cpus().length將獲得4 ,但在將應用程序放入docker容器后,它返回2

我一般都知道這是因為默認Golang只運行在一個核心上,這就是為什么集群模塊只能看到一個CPU核心(2個邏輯核心)。

如果我希望我的集群模塊能夠利用所有物理CPU核心,那么實現這一目標的正確方法是什么?

我嘗試使用--cpuset-cpus=0-1選項,直到現在還沒有弄清楚。

我在想如果我只創建一個任意數量的工作者,那真的可以利用所有的CPU內核嗎? 這里的os.cpus().length只是用來計算機器有多少cpu核心,我可以通過調用shell腳本來解決這個問題。 這意味着這個問題可以簡單地等於Node.js os.cpus() API與os.cpus()不兼容? 真的嗎?

您的docker機器使用默認的2核心。 在Mac上,您可以更改高級金額。 在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM