टीएल; डीआर : संक्षिप्त शोध से यह प्रतीत होता है कि कमांड को विशिष्ट संख्या में कोर तक सीमित करना संभव है, हालांकि सभी मामलों में आपको एक कमांड का उपयोग करना होगा जो वास्तव में प्रतिबंध लागू करता है।
cgroups
लिनक्स के पास cgroups
प्रक्रियाओं के लिए उपलब्ध संसाधनों को प्रतिबंधित करने के उद्देश्य से अक्सर उपयोग किया जाता है। एक बहुत ही संक्षिप्त शोध से, आप आर्क विकी में मतलाब (एक वैज्ञानिक सॉफ्टवेयर) विन्यास के साथ एक उदाहरण पा सकते हैं /etc/cgconfig.conf
:
group matlab {
perm {
admin {
uid = username;
}
task {
uid = username;
}
}
cpuset {
cpuset.mems="0";
cpuset.cpus="0-5";
}
memory {
memory.limit_in_bytes = 5000000000;
}
}
इस तरह के विन्यास को प्रभावी होने के लिए, आपको प्रक्रिया को cgexec
कमांड के माध्यम से चलाना होगा , जैसे एक ही विकी पेज से:
$ cgexec -g memory,cpuset:matlab /opt/MATLAB/2012b/bin/matlab -desktop
taskset
एक संबंधित सवाल पूछो Ubuntu और पर कैसे लिनक्स में एक सीपीयू कोर करने के लिए एक प्रक्रिया को सीमित करने के? यूनिक्स और लिनक्स साइट पर [डुप्लिकेट]taskset
प्रक्रिया के लिए सीपीयू को सीमित करने के लिए उपयोग करने का एक उदाहरण दिखाते हैं। पहले प्रश्न में, यह किसी विशेष उपयोगकर्ता के लिए सभी प्रक्रियाओं को पार्स करने के माध्यम से हासिल किया गया है
$ ps aux | awk '/^housezet/{print $2}' | xargs -l taskset -p 0x00000001
अन्य प्रश्न में, एक प्रक्रिया अपने आप शुरू हो जाती taskset
है:
$ taskset -c 0 mycommand --option # start a command with the given affinity
निष्कर्ष
हालांकि प्रक्रियाओं को सीमित करना निश्चित रूप से संभव है, ऐसा लगता है कि विशेष उपयोगकर्ताओं के लिए इसे प्राप्त करना इतना आसान नहीं है। लिंक्ड आस्क उबंटू पोस्ट में उदाहरण प्रत्येक उपयोगकर्ता से संबंधित प्रक्रियाओं के लिए लगातार स्कैनिंग और taskset
प्रत्येक नए पर उपयोग करने की आवश्यकता होगी। सीपीयू के गहन अनुप्रयोगों को चुनिंदा रूप से चलाने के लिए एक अधिक उचित दृष्टिकोण होगा, या तो के माध्यम से cgexec
या taskset
; CPUS की विशिष्ट संख्या तक सभी प्रक्रियाओं को प्रतिबंधित करने का भी कोई मतलब नहीं है, खासकर उन लोगों के लिए जो वास्तव में अपने कार्यों को तेजी से चलाने के लिए समानता और संगति का उपयोग करते हैं - उन्हें विशिष्ट संख्या में सीपीयू तक सीमित करने से प्रसंस्करण धीमा हो सकता है। इसके अतिरिक्त, टेर्डन के जवाब के रूप में यह संसाधनों की बर्बादी है
के माध्यम से आवेदन पत्र का चयन चल रहा है taskset
या cgexec
उन्हें पता है कि वे क्या अनुप्रयोगों चला सकते हैं यह बताने के लिए अपने उपयोगकर्ताओं के साथ संवाद स्थापित करने की आवश्यकता है, या स्क्रिप्ट जो के माध्यम से आवेदन पत्र का चयन का शुभारंभ करेंगे आवरण बनाने tasksel
या cgexec
।
इसके अतिरिक्त, सीपीयू की संख्या की सीमा तय करने के बजाय उपयोगकर्ता या समूह की प्रक्रियाओं की संख्या पर विचार किया जा सकता है। यह /etc/security/limits.conf
फ़ाइल के माध्यम से प्राप्त किया जा सकता है ।
यह सभी देखें