Contar el número de CPU permitidas en un contenedor de Docker

Mi escenario específico es el siguiente. Lanzo un contenedor docker con un conjunto de cpu específico:

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

dentro de ese contenedor, ejecuto un script de shell como punto de entrada y ese script de shell se ejecutará make en algún momento. Me gustaría averiguar qué buena cantidad de trabajos (-j) lo sería. Por supuesto, podría pasar el número de CPU asignadas a través del entorno, pero sería mucho más preferible una forma automática de detectarlo.

Sé que puedo usar taskset -c -p $$ o cat /proc/self/status | grep Cpus_allowed_list para recuperar el Cpus_allowed para el proceso actual, pero no sé cómo recuperar el número real de Cpu. Me gustaría evitar analizar la salida de esos comandos o jugar con el Cpus_allowed enmascare, pero lo hará, cuando se quede sin opciones.

Puede utilizar el nproc herramienta de script de shell.

Así que sería -j$(nproc) en la línea de comandos make en cuestión.

` nproc ’ - imprime el número de unidades de procesamiento disponibles

@Brian, eso fue demasiado fácil.