Mój konkretny scenariusz jest następujący. Uruchamiam kontener dokerów z określonym zestawem procesorów:
docker run --cpuset-cpus="0-2" # ...
w tym kontenerze uruchamiam skrypt powłoki jako punkt wejścia i ten skrypt powłoki makew pewnym momencie uruchomi się. Chciałbym dowiedzieć się, jaka byłaby dobra liczba miejsc pracy ( -j). Mógłbym oczywiście przekazać liczbę przydzielonych procesorów przez środowisko, ale automatyczny sposób na ich wykrycie byłby znacznie preferowany.
Wiem, że mogę użyć taskset -c -p $$lub cat /proc/self/status | grep Cpus_allowed_listpobrać Cpus_allowedbieżący proces, ale nie wiem, jak pobrać rzeczywistą liczbę dozwolonych procesorów. Chciałbym uniknąć analizowania danych wyjściowych tych poleceń lub majstrowania przy Cpus_allowedmasce, ale zrobię to, gdy nie będzie dostępnych opcji.
nproc- wydrukuj liczbę dostępnych jednostek przetwarzania