लिनक्स: नींद की स्थिति के बजाय सीपीयू कोर बंद


10

लिनक्स में आप सीपीयू कोर (या भौतिक सीपीयू) को प्रतिध्वनि के साथ 0> / sys / डिवाइसेस / सिस्टम / cpu / cpu1 / ऑनलाइन मान सकते हैं कि हार्डवेयर पूरी तरह से सीपीयू को बंद कर देता है और इसके लिए बिजली काट देता है, इसे निष्क्रिय करना बेहतर नहीं होगा। कोर पूरी तरह से एक प्रोसेसर के विभिन्न नींद राज्यों पर निर्भर करने के बजाय?

उस सिद्धांत को स्पष्ट करने के लिए जो मैं चार सीपीयू के साथ एक प्रणाली के लिए इन पंक्तियों (स्यूडोकोड) के साथ सोच रहा था:

if(loadavg > 3.00) echo 1 > /sys/devices/system/cpu/cpu3/online
if(loadavg < 3.00) echo 0 > /sys/devices/system/cpu/cpu3/online

if(loadavg > 2.00) echo 1 > /sys/devices/system/cpu/cpu2/online
if(loadavg < 2.00) echo 0 > /sys/devices/system/cpu/cpu2/online

if(loadavg > 1.00) echo 1 > /sys/devices/system/cpu/cpu1/online
if(loadavg < 1.00) echo 0 > /sys/devices/system/cpu/cpu1/online

जवाबों:


6

सीपीयू कोर की ऑनलाइन स्थिति सेट करना प्रक्रिया अनुसूचक को किसी भी प्रक्रिया के लिए उस कोर का उपयोग नहीं करने के लिए कहता है। एक हार्डवेयर स्तर पर, कोर केवल बेकार ( NOPएस) कर रहा है , लेकिन अभी भी संचालित है। जबकि इससे बिजली की बचत होगी, यह कंप्यूटर को सोने के लिए लगभग उतनी बिजली नहीं बचाएगा। क्यों?

खैर, आपका मदरबोर्ड, सीपीयू और जीपीयू सभी अभी भी चल रहे हैं ! जब आप कंप्यूटर को सोने के लिए डालते हैं, तो ये सभी घटक शाब्दिक रूप से शक्तिहीन होते हैं, और आपकी रैम को जीवित रखने के लिए बस पर्याप्त शक्ति का उपयोग किया जाता है (युगल वाट के आदेश पर)।

फिर से, जब मैं मानता हूं कि यह बिजली की बचत करेगा, यहां तक ​​कि आपके सीपीयू कोर के आधे हिस्से को बंद करने से प्रोसेसर की बिजली की खपत कम हो सकती है (हालांकि वास्तव में, आप केवल 30-40% बचा सकते हैं क्योंकि उन कोर को अभी भी बेकार बैठना पड़ता है), लेकिन यह पॉवर का उपयोग करने वाले सिस्टम के एकमात्र घटक से बहुत दूर है। यहां तक ​​कि अगर आप ऐसा करके 50W बचाते हैं, तो आप पूरे कंप्यूटर अभी भी स्लीप मोड में मात्र वाट की तुलना में कहीं अधिक शक्ति आकर्षित कर रहे हैं ।


अंतिम विचार: जबकि मैं मानता हूं कि यह व्यवहार में एक महान विचार है, यही कारण है कि कई सीपीयू निर्माताओं में लिनक्स के लिए समर्थन के साथ गतिशील आवृत्ति स्केलिंग (इंटेल का "स्पीड स्टेप") शामिल है। आप अपनी आवश्यकताओं के लिए इन आवृत्तियों को अधिक उचित रूप से सेट करके, बेहतर समग्र प्रदर्शन, साथ ही शक्ति दक्षता प्राप्त कर सकते हैं। यह दोनों हार्डवेयर (BIOS सेटिंग्स) में किया जा सकता है, साथ ही सॉफ्टवेयर (लिनक्स कर्नेल आपको कुछ सीपीयू मापदंडों को संशोधित करने की अनुमति देता है, ऊपर दिए गए लिंक को देखें या विवरण के लिए इस वेबसाइट को देखें)।

यह काम करता है, क्योंकि CMOS सर्किट की बिजली खपत के लिए निम्नलिखित सामान्य समीकरण है:

पी = सीवी 2 एफ, जहां सी = कैपेसिटेंस (निश्चित मान), वी = वोल्टेज, और एफ = आवृत्ति।

इस प्रकार, आवृत्ति को 2 से विभाजित करने से मूल बिजली की खपत आधी हो जाएगी। वोल्टेज को 2 से विभाजित करने पर बिजली की खपत 1/4 कम हो जाएगी।


कम से कम x86 / amd64 संगत प्रोसेसर पर मुझे लगता है कि यदि संभव हो तो एक HLT निर्देश NOP की तुलना में सीपीयू पर अधिक आसान होगा। मैं विभिन्न नींद राज्यों (या सही ढंग से प्रोसेसर C0-C3 (ACPI)) का भी उल्लेख कर रहा था। इसके अलावा, मैं उन प्रणालियों के बारे में अधिक सोच रहा था जो हमेशा चलती हैं जहां पूरे सिस्टम को सोने के लिए नहीं रखा जा सकता है। उस स्थिति में मैं उत्सुक हूं कि क्या हार्डवेयर वास्तव में सीपीयू को बिजली काट देगा और यदि वह कुछ कॉन्फ़िगरेशन में बिल्कुल लागू किया गया है। आपके उत्तर के लिए धन्यवाद, लेकिन मैं प्रश्न को थोड़ा और खुला रहने दूंगा।
वैक्सहेड

एक बार जब आप CPU में बिजली काटते हैं, तो पूरा कंप्यूटर तार्किक रूप से "ऑफ" हो जाता है (और केवल बाहरी रुकावट के माध्यम से वापस चालू किया जा सकता है), भले ही अन्य हार्डवेयर अभी भी संचालित हो। इसके अलावा, आप इसके HLTबजाय का उपयोग करने के बारे में सही हो सकता है NOP, लेकिन यह वापस अंतराल के उपयोग में जोड़ता है (जो कि कैसे एक प्रोसेसर को रोकने की स्थिति से बाहर लाने के लिए है)। कट पावर के बजाय, अधिकांश प्रोसेसर गतिशील रूप से घड़ी की गति और वोल्टेज (मेरे जवाब में जोड़ा गया समीकरण) बदलते हैं।
ब्रेकथ्रू

मैंने इस पर कुछ और शोध किए। यह पता चला है कि लिनक्स वास्तव में सीपीयू के हॉटप्लग का समर्थन करता है। उस स्थिति में यदि BIOS / मदरबोर्ड इसका समर्थन करता है तो आप वास्तव में सीपीयू (एस) को बंद कर सकते हैं और उन्हें बदल सकते हैं जैसे कि सिस्टम चालू होने और इसे बदलने के दौरान सीपीयू को इसके सॉकेट से बाहर निकाल दें। Ref: cyberciti.biz/faq/debian-rhel-centos-redhat-suse-hotplug-cpu अगर मैं गलत नहीं हूँ तो यह एक सीपीयू को बिजली काट देगा यदि BIOS / मदरबोर्ड इसका समर्थन करता है।
मोमिक्स

@ बढ़िया पोस्ट आपके अच्छे पोस्ट के लिए धन्यवाद। क्या आप यह बता सकते हैं कि हम कैसे कम बिजली की स्थिति में (रिबूटिंग सिस्टम के साथ) सीपीयू डाल सकते हैं और आवश्यकता पड़ने पर वापस प्राप्त कर सकते हैं
iDebD_gh

@Breakthrough "कोर केवल बेकार (NOPs कर रहा है)," जब हम किसी विशेष सीपीयू कोर पर ऑफ़लाइन करते हैं, तो यह "/ proc / व्यवधान" से गायब हो जाता है। आप कैसे कह सकते हैं कि कोर एनओपी ऑपरेशन को संसाधित कर रहा है?
8:डेब_घ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.