我們在 VMWare 虛擬機器管理程式的 RedHat VM 上執行 Docker。當我們在 VM 上新增更多虛擬核心 (vCPU) 時,RedHat 會看到額外的資源並且可以處理,但無法處理由 Docker 執行或啟動的容器。他們只能使用CPU0 至 CPU7CPU8 到 CPU15 是任何容器都完全無法觸及。 Docker 檢查傳回的 CPU 沒有限制。重新啟動虛擬機器並不能解決此問題。 cadvisor 容器也報告只有 8 個可用核心。有人知道如何修復它嗎? Docker 是否將原始 CPU 數量保存在某處? Docker 守護程式如何知道可用核心的數量?
答案1
我們解決了。有一個技巧可以讓 docker 意識到熱插拔的 CPU。我們不知道為什麼舊設定在重新啟動後仍然存在。以下命令是解決方案:
for c in $(compgen -G '/sys/fs/cgroup/cpuset/system.slice/docker-*'); do echo 0-15 > ${c}/cpuset.cpus ; done