在docker container

时间:2017-06-25 15:00:04

标签: node.js docker

在我的物理机器上运行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与docker不兼容?这是真的吗?

1 个答案:

答案 0 :(得分:1)

您的泊坞机使用默认的2核心。在Mac上,您可以更改高级金额。 enter image description here