मेरा विशिष्ट परिदृश्य निम्नलिखित है। मैं एक विशिष्ट कंटेनर के साथ एक डॉक कंटेनर लॉन्च करता हूं:
docker run --cpuset-cpus="0-2" # ...
उस कंटेनर के अंदर मैं प्रवेश बिंदु के रूप में एक शेल स्क्रिप्ट चलाता हूं और यह शेल स्क्रिप्ट make
किसी बिंदु पर चलेगा । मैं यह पता लगाना चाहूंगा कि नौकरियों की अच्छी संख्या ( -j
) क्या होगी। मैं निश्चित रूप से पर्यावरण के माध्यम से आवंटित सीपीयू की संख्या को पारित कर सकता हूं, लेकिन यह पता लगाने के लिए एक स्वचालित तरीका बहुत पसंद किया जाएगा।
मुझे पता है कि मैं वर्तमान प्रक्रिया के लिए उपयोग taskset -c -p $$
या cat /proc/self/status | grep Cpus_allowed_list
पुनर्प्राप्त कर सकता हूं Cpus_allowed
, लेकिन मुझे नहीं पता कि अनुमत सीपीयू की वास्तविक संख्या कैसे प्राप्त की जाए। मैं उन कमांड के आउटपुट को पार्स करने या Cpus_allowed
मास्क के साथ फ़िडलिंग से बचना चाहूंगा , लेकिन विकल्पों से बाहर होने पर ऐसा करूंगा।
nproc
- उपलब्ध प्रसंस्करण इकाइयों की संख्या प्रिंट करें