我浏览了文档,似乎不可能将Docker swarm中的进程隔离到特定的内核,就像使用numactl或cpuset--cpu时一样。在docker run中,您可以这样做(16CPU机器,在从8到15的第二个插槽上使用8个cpu ):
/usr/bin/docker run --detach --name myproc --cpus 8 --cpuset-cpus 8-15 --cpuset-mems 1 -- privateregistry:5000/myimage:v1 -c '/bin/myverycpuintensiveprocess.sh'我可以确认进程不会从一个核心跳到另一个核心,而是固定在CPUS 8-15上。此外,它们还将使用插槽1中的内存。
从'create service‘文档中,我看到最接近的是’--保留-cpu‘和--’保留-内存‘,但这只是为了控制容器的位置。
Docker Swarm是否禁止这种级别的控制?我也在研究K8s,它似乎也有同样的局限性。
谢谢,
发布于 2020-10-20 17:36:02
目前还不支持,它是一个issue on GitHub,人们应该投票支持这个功能。
https://stackoverflow.com/questions/64402697
复制相似问题