عد عدد وحدات المعالجة المركزية المسموح بها في حاوية عامل الميناء

السيناريو الخاص بي هو ما يلي. أنا إطلاق حاوية عامل ميناء مع وحدة المعالجة المركزية محددة:

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

داخل تلك الحاوية أقوم بتشغيل برنامج نصي شل كنقطة دخول وسيتم تشغيل هذا البرنامج النصي شل make في مرحلة ما. وأود أن معرفة ما عدد لا بأس به من فرص العمل (-j) سيكون. يمكنني بالطبع تمرير عدد وحدات المعالجة المركزية المخصصة من خلال البيئة ، ولكن طريقة تلقائية للكشف عن ذلك سيكون من المفضل كثيرا.

وأنا أعلم أنني يمكن استخدام taskset -c -p $$ أو cat /proc/self/status | grep Cpus_allowed_list لاسترداد Cpus_allowed للعملية الحالية ، لكنني لا أعرف كيفية استرداد العدد الفعلي لوحدات المعالجة المركزية المسموح بها. وأود أن تجنب تحليل إخراج تلك الأوامر أو تافه مع Cpus_allowed قناع ، ولكن سوف نفعل ذلك ، عند الخروج من الخيارات.

يمكنك استخدام nproc أداة شل النصي.

لذلك سيكون -j$(nproc) في سطر الأوامر جعل في السؤال.

` نبروك ’ - طباعة عدد وحدات المعالجة المتاحة

@براين كان ذلك سهلا للغاية.