我的具体情况如下.我启动了一个具有特定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脚本工具.
所以在make命令行中它是-j $(nproc).