क्या लिनक्स प्रक्रिया को सीमित करना संभव है ताकि यह केवल किसी विशेष मशीन पर किसी विशेष कोर पर चल सके?


10

मान लीजिए कि मेरे पास क्वाड-कोर बॉक्स और चार समान प्रक्रियाएं हैं, जिनमें से प्रत्येक में दस धागे हैं। क्या लिनक्स में, यह कहना संभव है कि प्रोसेस ए को केवल सीपीयू 0 पर चलने की अनुमति है, प्रक्रिया बी को केवल सीपीयू 1, आदि पर चलने की अनुमति है?

जवाबों:


16
taskset <affinity mask> -p <process>

अर्थात

taskset 1 -p 12345

केवल प्रोसेसर / कोर 1 का उपयोग करने के लिए प्रक्रिया को 12345 सेट करें

बिटमास्क एक सूची हो सकती है (अर्थात कोर 4 1 कोर प्रणाली के 1 3 और 4 का उपयोग करने के लिए) या हेक्स में एक बिटमैक्स (0x0000000D 1,3,4, 0x00000001 सिर्फ 1 कोर के लिए)

tasksetआमतौर पर एक पैकेज में कहा जाता है shedutils

संपादित करें: लगभग भूल गया ... यदि आप किसी मौजूदा प्रक्रिया के लिए इसे बदलने के बजाय एक नई कमांड की आत्मीयता स्थापित करना चाहते हैं, तो उपयोग करें:

taskset <mask> <program> [<arg1>]...[<argN>]

1

कार्यपत्रक (उपयोग- linux 2.13-pre7) उपयोग: कार्यपत्रक [विकल्प] [मास्क | cpu- सूची] [pid | cmd [args ...]] सेट या एक प्रक्रिया की आत्मीयता प्राप्त करें

-p, --pid मौजूदा दिए गए pid -c, --cpu- सूची डिस्प्ले पर काम करता है और सूची प्रारूप -h में cpus निर्दिष्ट करता है, --help यह सहायता प्रदर्शित करता है -v, --version आउटपुट संस्करण जानकारी

डिफ़ॉल्ट व्यवहार एक नया कमांड चलाने के लिए है: कार्यपत्रक 03 sshd -b 1024 आप किसी मौजूदा कार्य का मुखौटा पुनः प्राप्त कर सकते हैं: कार्य -p 700 या इसे सेट करें: कार्य -p 03 700 सूची प्रारूप इसके बजाय अल्पविराम से अलग सूची का उपयोग करता है मास्क: कार्यपत्रक-पीसीआई ०,३, 700-११ tasks Rang०० फॉरमेट इन लिस्ट फॉर्मेट में एक स्पष्ट तर्क हो सकता है: उदाहरण ०-३१: २ मास्क ० एक्स ५५५५५५५५ के बराबर है

उर जरूरत के अनुसार आप सर्वर का अनुकूलन कर सकते हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.