Meu cenário específico é o seguinte. Eu inicio um contêiner de docker com um cpuset específico:
docker run --cpuset-cpus="0-2" # ...
dentro desse contêiner, eu executo um script de shell como ponto de entrada e esse script de shell será executado makeem algum momento. Gostaria de descobrir qual seria um bom número de empregos ( -j). É claro que eu poderia passar o número de CPUs alocadas pelo ambiente, mas uma maneira automática de detectá-lo seria muito preferida.
Sei que posso usar taskset -c -p $$ou cat /proc/self/status | grep Cpus_allowed_listrecuperar o Cpus_allowedprocesso atual, mas não sei como recuperar o número real de CPUs permitidas. Gostaria de evitar analisar a saída desses comandos ou mexer com a Cpus_allowedmáscara, mas farei isso quando estiver fora das opções.
nproc- imprima o número de unidades de processamento disponíveis