Benim özel senaryom şudur. Belirli bir cpuset ile bir docker konteyner başlatın:
docker run --cpuset-cpus="0-2" # ...
o kabın içinde giriş noktası olarak bir kabuk komut dosyası çalıştırıyorum ve bu kabuk komut dosyası make
bir noktada çalışacak . Çok sayıda işin ( -j
) ne olacağını bulmak istiyorum. Tabii ki tahsis edilen CPU sayısını ortamdan geçirebildim, ancak bunu tespit etmenin otomatik bir yolu çok tercih edilirdi.
Geçerli işlem için kullanabilirsiniz taskset -c -p $$
veya cat /proc/self/status | grep Cpus_allowed_list
almak Cpus_allowed
biliyorum, ama izin verilen gerçek CPU sayısını almak için nasıl bilmiyorum. Bu komutların çıktısını ayrıştırmaktan veya Cpus_allowed
maske ile uğraşmaktan kaçınmak istiyorum , ancak seçeneklerin dışındayken yapacağım.
nproc
- mevcut işlem birimi sayısını yazdırın