让 Windows 上的 Docker 使用多个 NUMA 节点

问题描述 投票:0回答:1

我在 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
但这对虚拟机在哪个 NUMA 节点上运行没有影响。我唯一取得的成功是使用
--isolation process
,因为它暴露了所有核心。然而,我正在容器化的应用程序的性质意味着我真的想切换回 Hyper-V 隔离模式。

docker docker-for-windows
1个回答
0
投票

阅读KEP-1769:内存管理器作为非均匀内存访问(NUMA)用法的示例,有:

您可以在 WSL2 环境中尝试您的容器,但如果您完全依赖于 Windows 内核(这解释了您的 Windows 容器),这可能是不可能的。

© www.soinside.com 2019 - 2024. All rights reserved.