如何在容器中实现处理器亲和力?

如何在容器中实现处理器亲和力?

我发现使用 kubernetes 可以为某些工作负载设置节点关联性。我想知道各种容器技术中是否有任何设施(例如 docker、rocket 等)允许您将进程固定到核心?或者这在多租户环境中是否可能?也许这意味着裸机设置?

答案1

如果您的系统支持 SMP(对称多处理)以及多个物理 CPU、CPU 核心和逻辑 CPU 的某种组合,则可以将 Docker 容器分配给特定的 CPU 资源。

CPU 与 Docker 容器关联的示例命令

此处显示的示例涵盖了使用 docker run 命令创建容器时将 mycontainer Docker 容器分配给特定 CPU 资源。运行命令时,您必须替换 Docker 容器名称和 CPU 组件编号以适合您的环境。

此命令会将 mycontainer Docker 容器分配给第一个 CPU (CPU0):

# docker run --cpuset 0 /bin/bash mycontainer

可以指定多个CPU。此命令会将 mycontainer Docker 容器分配给 CPU 0 和 1:

# docker run --cpuset 0,1 /bin/bash mycontainer

可以指定一系列 CPU。此命令会将 mycontainer Docker 容器分配给 CPU 0、1 和 2:

# docker run --cpuset 0-2 /bin/bash mycontainer

相关内容