रात में जबरन अंडरकॉकिंग की गई


23

मेरा डेस्कटॉप हर समय रहता है। यह एक सर्वर के रूप में कार्य करता है और घर के अन्य आवश्यक कार्यों को भी करता है। दिन के दौरान यह OnDemand CPU सेटिंग का उपयोग करता है। यह अनिवार्य रूप से सीपीयू आवृत्ति को मापता है क्योंकि इसे इसकी आवश्यकता होती है और यह मेरे लिए वास्तव में अच्छी तरह से काम करता है।

रात के समय, यह चारों ओर उड़ता है। बेशक ज्यादातर समय यह एक कम शक्ति के साथ निष्क्रिय है, लेकिन कभी-कभी, यह कुछ करने के लिए रैंप करेगा। मैं इसके बजाय पॉवरसेव पर रहना चाहता था और कार्यों को पूरा करने में थोड़ा अधिक समय लेने के लिए मजबूर किया जाता था।

इसके अतिरिक्त, मेरे पास एक Nvidia कार्ड (GTX 580) है जो एक वर्ष में एक छोटे से अफ्रीकी गांव के उपयोग के लिए उतनी ही बिजली का उपभोग कर सकता है जब वह (Minecraft पर glares) चाहता है। अज्ञात कारणों के लिए (निस्संदेह डेस्कटॉप पर कुछ हो रहा है), यह रैंप, प्रशंसकों को लगता है जैसे वे अंतरिक्ष में लेज़रों को चार्ज करने के लिए चार्ज कर रहे हैं। रात के समय में, मैं जहाँ तक जाऊँगा कार्ड को कम करना चाहूँगा।

मैंने एक सरल रूट-रन क्रोन स्क्रिप्ट पर विचार किया है, ताकि इन पर जोर दिया जा सके लेकिन मेरे काम के घंटे परिवर्तनशील हैं। पिछले हफ्ते मेरे पास लगभग 70 घंटे काम करने वाला सप्ताह था इसलिए मैं बहुत जल्दी उठ गया था और अभी भी हर दिन बहुत देर से उठता था। यदि सिस्टम सुपर-अंडरक्लॉक मोड में साथ-साथ चल रहा था, तो मैं उग्र हो जाता। क्या ऐसा कुछ है जो मैं कह सकता हूं, "यदि अंडरकॉक:

  • यह 10pm और 9 बजे के बीच है
  • 10 मिनट के लिए कोई माउस / कीबोर्ड गतिविधि नहीं हुई है
  • कोई फिल्म नहीं चल रही है

यदि उन शर्तों में से एक सच नहीं है, तो अंडरक्लॉक को तुरंत वापस करने की आवश्यकता है । मैं एक क्रोन-स्क्रिप्ट का इंतजार नहीं करना चाहता हूं ताकि कंप्यूटर को उसके नींद से जगाया जा सके। इसी तरह, जैसे ही वे सभी सच हो जाते हैं, उसे वापस सो जाना चाहिए।

मेरे विकल्प क्या हैं?


अब आप किस संस्करण पर हैं? जब तक मैं अपनी मशीन के लिए घर नहीं जा सकता, तब तक मैं उल्लेख करूंगा कि आपको एसीपी इवेंट या पीएम-टूल्स पैकेज का उपयोग करके घटनाओं को हुक करने में सक्षम होना चाहिए।
गृहनगर

जवाबों:


19

यहां एक कार्यक्रम है जो आप चाहते हैं:

#!/usr/bin/env python
# coding: utf8

import time
import sys
import commands


USER = commands.getoutput("cat /var/log/auth.log | grep " +
    sys.argv[0]).split("sudo:")[1].split()[0].strip()


def is_idle():
    return int(commands.getoutput("xprintidle")) >= 10 * 60 * 1000

def is_night():
    return time.localtime().tm_hour in (22, 23, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

def is_stumm():
    return "RUNNING" not in commands.getoutput(("sudo -u %s pacmd " +
        "list-sinks | grep RUNNING") % USER)


def main():
    powersave = False
    while 1:
        if is_idle() and is_night() and is_stumm():
            if not powersave:
                print "going into powersave mode"
                commands.getoutput("echo powersave > " +
                    "/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor")
                powersave = True
        else:
            if powersave:
                print "going into ondemand mode"
                commands.getoutput("echo ondemand > " +
                    "/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor")
                powersave = False
        time.sleep(0.5)

if __name__ == '__main__':
    assert commands.getstatusoutput("xprintidle")[0] == 0, (
        "you need to `sudo apt-get install xprintidle`")
    assert commands.getoutput("whoami") == "root", (
        "you need to be root to run this program")
    main()

अपनी प्राथमिकताएँ नोट करें:

  • ... >= 10 * 60 * 1000
  • ... tm_hour in (22, 23, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9) तथा
  • "RUNNING" not in ...

मैं यह जानने के लिए कि क्या कोई फिल्म चल रही है, मैं pulseaudio का उपयोग कर रहा हूं। इससे संगीत भी प्रभावित होता है।


5

आप अपने सीपीयू स्केलिंग का उपयोग करने के लिए मजबूर कर सकते हैं:

cpufreq-selector -f [frequency]

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

बाकी एक स्क्रिप्ट का उपयोग करके लागू किया जा सकता है, हालांकि आप इसकी काफी मांग कर रहे हैं ^ _ ^। यदि आपको तत्काल प्रतिक्रिया की आवश्यकता है जो मुझे लगता है कि आपको समय-समय पर अपने सिस्टम को पोलिंग करना होगा। मेरी ओर से, कुछ सीमित, ज्ञान वहाँ कुछ भी नहीं है जो आपके द्वारा निर्दिष्ट शर्तों की घोषणा करता है।

जांच शुरू करने के लिए एक जगह, हालांकि, एक स्क्रीनसेवर है। यह निष्क्रियता की एक निर्धारित अवधि के बाद बदल जाता है (जो रात 10 बजे- 9 बजे भी सच होगा) और फिल्म खिलाड़ियों द्वारा बाधित किया जा सकता है। यदि आपने एक स्क्रीनसेवर बनाया है जो सीपीयू को शुरू करते समय छोटा कर देता है, और इसे फिर से चालू कर देता है, तो आपके पास वही होगा जो आप चाहते हैं।

दुर्भाग्य से यही है कि जहाँ तक मैं आपको ले जा सकता हूं, स्क्रीनसेवर के बारे में कुछ नहीं पता है और वे कैसे काम करते हैं।

सौभाग्य।


4

हो सकता है कि आप वास्तव में पावरसर्व गवर्नर का उपयोग करके अधिक बिजली की बचत न करें ।

आपके कार्यभार के आधार पर, थोड़ी अधिक शक्ति खर्च करके किसी कार्य वस्तु को जल्दी से समाप्त करना और फिर कम बिजली की खपत के साथ विस्तारित समय के लिए काम करने के बजाय गहरी नींद की स्थिति में वापस आना बेहतर परिणाम दे सकता है।

आपके आवेदन के आधार पर, यह कम बिजली की आवश्यकताओं के साथ एक समर्पित सर्वर और उस लोड के लिए एक उचित रूप से आयामित बिजली की आपूर्ति को स्थापित करने के लिए भी सार्थक हो सकता है, और बस रात में डेस्कटॉप को बंद कर सकता है।


1
कभी-कभी आप बस चाहते हैं कि आपका कंप्यूटर शांत रहे, खासकर रात में ..
मैक्सिमे आर।

यदि आप शांत चाहते हैं, तो सिस्टम को बिल्कुल भी न चलाना सबसे अच्छा तरीका है। मेरे पास मेरे दैनिक काम के लिए एक बहुत ज़ोर की मशीन है और पृष्ठभूमि कार्यों के लिए झाड़ू कोठरी में एक सर्वर है, उत्तरार्द्ध में एक छोटी बिजली की आपूर्ति (=> कम अपशिष्ट गर्मी), सीपीयू (=> कम अपशिष्ट गर्मी), ग्राफिक्स कार्ड (आपको मिलता है) विचार), ... और ondemand गवर्नर का उपयोग करता है । मेरे बेडरूम में रात में मेरे पास शून्य शोर है, और सर्वर के लिए बिजली की खपत एक तिहाई के बारे में है जो डेस्कटॉप निष्क्रिय होने पर खाती है, इसलिए मैं अभी भी पैसे बचाता हूं।
साइमन रिक्टर

ज़रूर, मैं सहमत हूं, लेकिन इस विशेष मामले में ओली सर्वर और डेस्कटॉप जैसी ही मशीन का उपयोग करता है।
मैक्सिमम आर।

3

powernap इस तरह की चीजों के लिए एक उपयोगी उपकरण है, अच्छी बात यह है कि यह आपके प्रोसेस टेबल पर दिखता है कि क्या आपका सिस्टम व्यस्त है, न कि कीबोर्ड पर आपका बेकार समय।

क्या आपने प्रत्येक गवर्नर के लिए शक्तियां मापी हैं? साइमन की तरह मुझे संदेह है कि यह एक महत्वपूर्ण राशि के रूप में जोड़ा जाएगा बनाम काम तेजी से किया जाएगा या राक्षस वीडियो कार्ड की तरह कुछ धुन करने की कोशिश कर रहा है।

पावरनैप को केवल गवर्नर स्विच को निष्पादित करने के लिए कॉन्फ़िगर किया जा सकता है या शायद यदि आपका हार्डवेयर समर्थन करता है तो यह रात में मध्य में वास्तविक नल लेने के लिए Wake On Lan (WOL) सुविधा का उपयोग करता है जब तक कि इसकी आवश्यकता न हो।


1

जहाँ तक सीपीयू जाता है, आप गवर्नर को केवल पावरस्वेव में बदल सकते हैं, उदाहरण के लिए, सीपीयू फ्रीक्वेंसी स्केलिंग मॉनिटर एप्लेट। वीडियो कार्ड एक और कहानी है। मुझे पता है कि मेरे एटीआई कार्ड में निम्न, मध्यम और उच्च के बीच प्रदर्शन को समायोजित करने के लिए / एसआईएस में एक घुंडी है, लेकिन उनके साथ फ़िडलिंग को कोई फर्क नहीं पड़ता है और अक्सर वीडियो अस्थिर हो जाता है।


1

cpufreqd आपको होने वाली विशिष्ट समस्या के लिए डिज़ाइन किया गया है, आप दिन और रात की प्रोफाइल बना सकते हैं और रनिंग प्रोग्राम के आधार पर नियम सेट कर सकते हैं।

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