docker - 让 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 process
as 暴露了所有核心。但是,我正在容器化的应用程序的性质意味着我真的想切换回 Hyper-V 隔离模式。
解决方案
推荐阅读
- django - 反向 django 自定义管理站点 URL
- asp.net - 从下拉列表中获取 ID?
- ruby-on-rails - Bitbucket 管道 - 是否可以在服务和使用该服务的步骤之间共享文件夹?
- javascript - DataTables - 过滤和比较多列
- google-cloud-platform - 如何安排 AppEngine Flex 实例在 Google Cloud 中停止和启动?
- sharepoint - Sharepoint 列表适配器到 SSIS - 401 NTLM 错误
- react-native - 前台服务访问位置时的权限声明表
- angular - Bytea 使用 Spring Data JPA 和 Angular 在 Postgresql 中持久化和检索
- c# - 为父表检索两个孙数据的 lambda 表达式是什么?
- asp.net-core - Asp.Net Core 中间件中的重定向