如何在容器中實現處理器親和力?

如何在容器中實現處理器親和力?

我發現使用 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

相關內容