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ı makebir 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_listalmak Cpus_allowedbiliyorum, 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_allowedmaske 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