繁体   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