首页 > 解决方案 > 让 Windows 上的 Docker 使用多个 NUMA 节点

问题描述

我在 Threadripper 3990X 上使用 Docker 时遇到了困难。尽管启动了 64 个容器,每个容器都带有--cpus 2传递给的选项docker run,但我无法让 Docker 使用该 CPU 中的两个 NUMA 节点。它总是使用节点 0。我的理解是--cpus 2应该映射到两个线程或一个核心。所以使用 64 个容器,我应该能够使我的 CPU 饱和,但无论如何,只有 NUMA 节点 0 是饱和的。这是在 Windows 10 企业版上。

编辑 1:我使用的是 Windows 容器,来宾操作系统也是 Windows(与主机版本相同)。

我已经尝试过--cpuset-cpus--cpuset-mems但我收到错误消息说 Docker for Windows 不支持这些选项。我已经尝试过start /NODE <NUMA_node> docker run,但这对 VM 运行在哪个 NUMA 节点上没有影响。我所取得的唯一一点成功就是使用--isolation processas 暴露了所有核心。但是,我正在容器化的应用程序的性质意味着我真的想切换回 Hyper-V 隔离模式。

标签: dockerdocker-for-windows

解决方案


推荐阅读