क्या सीपीयू को निष्क्रिय करना संभव है (कोर नहीं)?


10

क्या सीपीयू को निष्क्रिय करना संभव है, कोर नहीं? मैं यह सत्यापित करने के लिए एक परीक्षण करना चाहता हूं कि क्या प्रदर्शन एक बड़ा अंतर बना सकता है या नहीं।

मैं Ubuntu 10.10 का उपयोग कर रहा हूं।

जवाबों:


10

आपके BIOS ग्रब में ऐसा करने के अलावा एक विकल्प भी है maxcpus

maxcpus=1मापदंडों में जोड़कर अपने ग्रब बूट विकल्प का चयन करते समय आप इस विकल्प को संपादित कर सकते हैं । रैंडम ग्रब तस्वीर:

यहाँ छवि विवरण दर्ज करें

'ई' चुनें और आप एक कमांड लाइन पर जाएं जहां आप विकल्प जोड़ सकते हैं।

आप अपने वर्तमान बूट विकल्प की एक प्रति बनाकर और maxcpus=1बूट मापदंडों में जोड़कर ग्रब में स्थायी बूट विकल्प भी बना सकते हैं । आप इस 'उबंटू, कर्नेल 2.5.12-9-386 (1 सीपीयू)' को नाम दे सकते हैं और इसे अन्य बूट विकल्पों की तरह दिखा सकते हैं जैसे चित्र दिखाते हैं।

आप 1 सीपीयू जारी करके सत्यापित कर सकते हैं:

cat /proc/cpuinfo | grep processor इसे कुछ इस तरह दिखाना चाहिए:

प्रोसेसर: 0
प्रोसेसर: १

और 1 सीपीयू के साथ बूट होने के बाद दूसरी पंक्ति गायब हो जानी चाहिए।


1
यह सवाल भी एक बहुत ही व्यावहारिक व्यावहारिक मजाक बना देगा! : डी
अलवर

यदि आप अधिकतम सेट करते हैं तो क्या होता है = 0? : पी
पागल २०

@ रिनविंड मैंने ठीक वही किया जो आपने कहा था, लेकिन परिणाम अजीब लगता है, मुझे 12 प्रोसेसर की जानकारी मिली जब पैरामीटर को "मैक्सकपस = 1" जोड़ने से पहले, जब ग्रेपिंग करते हैं, लेकिन मुझे संशोधन के बाद केवल 1 प्रोसेसर की जानकारी मिली, यह केवल एक कोर लगता है सभी 12 कोर सक्रिय है। नोट: मेरे कंप्यूटर में दो छह-कोर सीपीयू हैं।
सिंह राशि

@ Crazy2be अनुमान लगाते हुए: 1 प्रोसेसर को 0 कहा जाता है ताकि आप एक का उपयोग करके समाप्त हो जाएं? : डी
रिनविंड

@ LeoYuan88 袁力皓 क्या आप इसे बिल्ली / proc / cpuinfo के आउटपुट को संपादित कर सकते हैं | grep प्रोसेसर से पहले और बाद में आप maxcpus = 1 से बूट करते हैं?
रिनविंड

7

आप CPU के माध्यम से गतिशील रूप से अक्षम कर सकते हैं /sys/devices/system/cpu/cpuN/online, उदाहरण के लिए CPU 1 को अक्षम करें, उपयोग करें:

echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online

और फिर से सक्षम करने के लिए, उपयोग करें:

echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online

यह एक सीपीयू को नहीं, बल्कि एक लोर को अक्षम करने के लिए लगता है। मेरे पास अपने सिस्टम पर प्रत्येक तार्किक कोर के लिए इन निर्देशिकाओं में से एक है।
सूदो

1

आप सीपीयू को उसके सॉकेट से हमेशा अनप्लग कर सकते हैं। यह क्रूर बल है, लेकिन आप जिस परीक्षण को चाहते हैं उसे प्राप्त करने की गारंटी देते हैं, और यदि कर्नेल / BIOS / जो कुछ स्विच वास्तव में वह कर रहा है जो आप उम्मीद कर रहे हैं तो आपको चिंता करने की ज़रूरत नहीं है।

मेरी कंपनी के पास दुनिया भर के विभिन्न स्थानों में सर्वर फार्मों की बड़ी स्थापना है। हमारी प्रयोगशाला में हम कभी-कभी केवल इस तरह के परीक्षण के लिए सॉकेट्स से सीपीयू निकाल देंगे।

इस परीक्षण पर एक दिलचस्प बदलाव है जो आप मल्टी-सीपीयू एनयूएमए सिस्टम के साथ कर सकते हैं । उन प्रकार के मदरबोर्ड पर आप उन सभी मेमोरी डीआईएमएम को हटा सकते हैं जो एक भौतिक सीपीयू द्वारा नियंत्रित होते हैं। सिस्टम अभी भी ठीक बूट होगा, और फिर आप अपने आवेदन के साथ विभिन्न कोर पर पिन किए गए परीक्षण चला सकते हैं जो आपको "स्थानीय" या "रिमोट" मेमोरी के प्रभावों को मापने की अनुमति देगा।


क्षमा करें, मुझे अभी भी नहीं पता है कि अपने सॉकेट से सीपीयू को अनप्लग कैसे किया जाए, क्या आप मुझे दिखा सकते हैं कि मैं कैसे काम करूं?
सिंह राशि

0

कोर की संख्या के साथ एक मल्टीथ्रेड एप्लिकेशन के प्रदर्शन को देखना चाहेंगे? यदि ऐसा है, तो आप कार्य-उपयोगिता का उपयोग कर सकते हैं। मुझे लगता है कि आपके पास एक NUMA मशीन है। आप numactl उपयोगिता को स्थापित कर सकते हैं और इसका उपयोग करके आप यह पता लगा सकते हैं कि कौन सा CPU किस अनुरूप है। उदाहरण के लिए, आपकी मशीन में दो क्वाड-कोर CPUS (चिप्स) हैं। कार्यपत्रक उपयोगिता का उपयोग करके आप एक सीपीयू के सेट के रूप में कोर बना सकते हैं और इन्हें अपने आवेदन में आवंटित कर सकते हैं। तब आपका एप्लिकेशन केवल एक सीपीयू / चिप (चार कोर) का उपयोग करता है। यदि आपको अधिक जानकारी की जरूरत है तो कृपया मुझे बता है।

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