docker - 有一种方法可以将 --cpus-cpuset 和 --cpuset-mems 传递给 docker swarm
问题描述
我正在查看文档,似乎不可能将 Docker swarm 中的进程隔离到特定核心,例如使用 numactl 或 cpuset--cpus 时。在docker run你这样做(16 cpu 机器,在 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 的内存。
从“创建服务”文档中,我看到最接近的是“--reserve-cpu”和--reserve-memory',但这只是为了控制容器放置。
Docker Swarm 是否禁止这种级别的控制?我也在看 K8s,它似乎也有同样的限制。
谢谢,
解决方案
目前不支持,这是GitHub 上的一个问题,人们应该为这个功能投票。
推荐阅读
- autodesk-forge - 如何获取对象的坐标
- excel - 将 Excel 公式执行到另一个工作表中
- javascript - 如何在 json 对象内的特定键值上应用函数
- jquery - AngularJS 将 json 数据以列表的形式传递给 mvc 控制器
- python - 如何仅使用 Jupyter Notebook 安装 Qiskit?
- php - 传递的函数 0 的参数太少,而 DI 容器恰好期望 1
- mysql - 在线移动和移动配件购物的数据库设计
- python - Python重试改变行为
- flutter - 如何在 Flutter 上基于多个类别有效过滤列表?
- powershell-2.0 - 读取逗号分隔的文件