Linux

計算 Docker 容器中允許的 CPU 數量

  • April 12, 2016

我的具體情況如下。我啟動一個帶有特定 cpuset 的 docker 容器:

docker run --cpuset-cpus="0-2" # ...

在該容器內,我執行一個 shell 腳本作為入口點,該 shell 腳本將make在某個時候執行。我想弄清楚有多少工作(-j)。我當然可以通過環境傳遞分配的 CPU 的數量,但更喜歡自動檢測它的方法。

我知道我可以使用taskset -c -p $$cat /proc/self/status | grep Cpus_allowed_list檢索Cpus_allowed目前程序的,但我不知道如何檢索允許的 CPU 的實際數量。我想避免解析這些命令的輸出或擺弄Cpus_allowed遮罩,但在沒有選項時會這樣做。

您可以使用nprocshell 腳本工具。

所以它會-j$(nproc)在有問題的 make 命令行中。

引用自:https://serverfault.com/questions/691659