Mon scénario spécifique est le suivant. Je lance un docker avec un cpuset spécifique:
docker run --cpuset-cpus="0-2" # ...
à l'intérieur de ce conteneur, je lance un script shell comme point d'entrée et ce script shell s'exécutera makeà un moment donné. Je voudrais savoir quel serait un bon nombre d'emplois ( -j). Je pourrais bien sûr transmettre le nombre de CPU alloués dans l'environnement, mais un moyen automatique de le détecter serait de loin préférable.
Je sais que je peux utiliser taskset -c -p $$ou cat /proc/self/status | grep Cpus_allowed_listpour récupérer le Cpus_allowedpour le processus en cours, mais je ne sais pas comment récupérer le nombre réel de CPU autorisés. Je voudrais éviter d'analyser la sortie de ces commandes ou de jouer avec le Cpus_allowedmasque, mais je le ferai quand je n'aurai plus d'options.
nproc- imprimer le nombre d'unités de traitement disponibles