问题描述
在Threadripper 3990X上使用Docker时遇到了困难。尽管启动了64个容器,每个容器都将--cpus 2
选项传递给了docker run
,但我无法让Docker使用该CPU中的两个NUMA节点。它始终使用节点0。我的理解是--cpus 2
应该映射到两个线程或一个内核。因此,使用64个容器,我应该能够饱和我的CPU,但是无论如何,只有NUMA节点0饱和。这是在Windows 10企业版上。
编辑1:我正在使用Windows容器,并且客户机OS也是Windows(与主机版本相同)。
我已经尝试过--cpuset-cpus
和--cpuset-mems
,但是却收到错误消息,说Windows的Docker不支持这些选项。我已经尝试过start /NODE <NUMA_node> docker run
,但这对VM在哪个NUMA节点上运行没有影响。我唯一获得成功的地方就是使用--isolation process
,因为它暴露了所有核心。但是,我要进行容器化的应用程序的性质意味着我真的想切换回Hyper-V隔离模式。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)