Linux
計算 Docker 容器中允許的 CPU 數量
我的具體情況如下。我啟動一個帶有特定 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
遮罩,但在沒有選項時會這樣做。
您可以使用
nproc
shell 腳本工具。所以它會
-j$(nproc)
在有問題的 make 命令行中。