CPU Kerne dynamisch abschalten - 4 W Ersparnis - kleiner Patch gewünscht

  • Hallo,


    derzeit gewöhne ich meinem neuen (ya)vdr das Stromfressen ab ;-. Dabei bin ich auf folgendes gestoßen:
    1. Es ist möglich CPU-Kerne zur Laufzeit abzuschalten
    2. Es spart Strom :)


    Die CPU dumpelt eh meist bei < 1% Last herum.
    Mit echo 0 > /sys/devices/system/cpu/cpu1/online bzw. echo 1 > /sys/devices/system/cpu/cpu1/online kann man Kern #1 (..#2, #3, nicht #0) schlafen legen.
    Bei meinem System mit i5 (4 Kerne) reduziert sich der Verbrauch um ca. 4 W.


    Mit dem "cpuplugd" gibt es einen daemon, der das automatisch regelt. Funktioniert auch, allerdings kann die mir vorliegende Version nur von 2 auf 3 Kerne regeln, da ist ein patch fällig.
    Der Grund dürfte sein, dass es "/sys/devices/system/cpu/cpu0/online" nicht gibt. (Was bei Systemen ohne physikalisches CPU-Hotplug auch Sinn macht, das wäre ein schöner Unfug cpu0 auch abzuschalten - der letzte macht das Licht aus ;)


    Ich würde den patch zwar hinbekommen, aber da das System endlich mal ins Wohnzimmer soll hat das niedrige prio. Freiwillige vor..würde mich freuen.


    Grüße
    Ralf



    HowTo


    Referenzen zum Thema Stromsparen, Fette beziehen sich auf CPU Core Abschaltung

    VDR - Die 'Killerapplikation' die mich zu Linux gebacht hat ;)

    Neues yaVDR HD-System ging am 20.12.2013 in Betrieb :)
    yaVDR 0.7-ansible im Aufbau ab Jan. 2024.

    4 Mal editiert, zuletzt von Ralf_D ()

  • Ich nutze die cpufreq-utils, um auf meinem Server die CPU (i3) runter zu regeln, wenn sie nicht gebraucht wird. Würde mich aber mal interessieren, in wiefern sich beide Lösungen im Stromverbrauch unterscheiden. Hast du das mal probiert?

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Servus,


    der folgende Patch sollte die Lösung bringen.


    Das Tool zählt(e) nur die CPUs mit besagter Datei, die erste CPU (bzw. diejenigen ohne die Datei "online") bleibt/blieb somit immer außen vor.


    Zumindest auf meinem Core i7 funktioniert das jetzt prima, geht runter bis auf 1 CPU (auch wenn dann immer eine zusätzliche CPU aktiviert wird, zu viel "Grundrauschen" auf der Kiste). Verlässliche Verbrauchswerte (Unterschiede) kann ich (noch) nicht liefern, bin grad nicht vor Ort. Ein kurzer Test heute Morgen sagte aber was von ca. 8-10W (von 8 Cores auf 2 runter). Aber das würde ich gerne noch einmal etwas länger beobachten. cpufreqd nutze ich auch noch, um die CPU runterzutakten.


    cu
    Markus


    Edit sagt: Patch-Format war irgendwie falsch ;) Hab das mal korrigiert.

  • Ich möchte auch noch die Linkliste um 2 Links erweitern:
    http://www.1elf.de/15-content/…iesparma%C3%9Fnahmen.html (Zusammenfassendes Skript aus den unterschiedlichsten, bereits verlinkten Quellen)
    http://www.1elf.de/technik/dig…-macht-das-licht-aus.html (Wenn der VDR 24/7 läuft, aber die Glotze nicht immer läuft...)


    cu
    Markus

  • Es war noch etwas mehr zu tun, damit die Anzeige auch zur wirklich verwendeten Anzahl der CPUs passt. Patch (komplett):


    Die Einstellungen in der /etc/cpuplugd.conf haben bei mir nicht wirklich funktioniert, mit folgenden Werten habe ich jetzt erst mal in etwas das, was ich mir vorstelle. Zwar noch etwas träge, aber da muss man sich noch mal mit anderen Werten spielen. "idle" bringt bei meinem System zumindest je nachdem wie viel CPUs gerade aktiv sind hohe Werte. Und mit einem burnP6 Prozess tut sich am idle-Wert auch nicht viel... Ich habe es noch nicht geschafft, das die Variable onumcpus mit reinzupacken. Bei loadavg funktioniert es aber.


    Das sorgt auf meiner Kiste für aktuell dauerhaft 2 laufende CPUs (was aber passt, da läuft ja nicht nur vi drauf ;)), sobald man einen "hungrigen" Prozess (burnP6) startet und damit das loadavg nach oben treibt, schaltet sich ein weiterer Kern dazu. Das spiel kann man dann mit weiteren bunrP6 Prozessen wiederholen.


    Edith sagt, dass ich noch einen burnP6 am laufen hatte. Jetzt kommt die Kiste auch mit einem Kern aus. Trotz einiger VMs ;) Ich bin auf die Anzeige des Energiemessgerätes heute Abend gespannt.


    cu
    Markus

  • Ich nutze die cpufreq-utils, um auf meinem Server die CPU (i3) runter zu regeln, wenn sie nicht gebraucht wird. Würde mich aber mal interessieren, in wiefern sich beide Lösungen im Stromverbrauch unterscheiden. Hast du das mal probiert?


    Hi,


    ja hab ich quasi. Ich benutze nicht explitit die cpufreq-utils, sondern das was der 3.8-er Kernel standardmäßig macht. (Ondemand-Gouvernor) Jedenfalls sind die Kerne zu 99% im Idle. Von da aus lassen sich bei mir noch besagte ca. 4W sparen. Bei einem i5 mit 4 Kernen, d.h. 3 abschaltbar.


    grep name /proc/cpuinfo
    model name : Intel(R) Core(TM) i5-3475S CPU @ 2.90GHz



    cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
    3601000 1268 <- "Turbo"
    3600000 0
    3500000 0
    3300000 0
    3200000 8
    3000000 0
    2900000 0
    2700000 0
    2600000 0
    2500000 0
    2300000 0
    2200000 0
    2000000 0
    1900000 0
    1700000 0 <- 1,7 GHz
    1600000 121472


    Grüße
    Ralf

    VDR - Die 'Killerapplikation' die mich zu Linux gebacht hat ;)

    Neues yaVDR HD-System ging am 20.12.2013 in Betrieb :)
    yaVDR 0.7-ansible im Aufbau ab Jan. 2024.

    3 Mal editiert, zuletzt von Ralf_D ()

  • Ich möchte auch noch die Linkliste um 2 Links erweitern:
    http://www.1elf.de/15-content/…iesparma%C3%9Fnahmen.html (Zusammenfassendes Skript aus den unterschiedlichsten, bereits verlinkten Quellen)
    http://www.1elf.de/technik/dig…-macht-das-licht-aus.html (Wenn der VDR 24/7 läuft, aber die Glotze nicht immer läuft...)


    cu
    Markus


    Hi Markus,


    super! Das ich das beim 8h-googeln nicht gefunden hab!
    Umsetzung von powertop-Optionen wäre mein nächster "tweak". Nachdem ich den Stromverbrauch jetzt Langzeit-vermessen habe, kann ich auch kleine Differenzen zuverlässig feststellen.


    Grüße
    Ralf

    VDR - Die 'Killerapplikation' die mich zu Linux gebacht hat ;)

    Neues yaVDR HD-System ging am 20.12.2013 in Betrieb :)
    yaVDR 0.7-ansible im Aufbau ab Jan. 2024.

  • Zwei Fragen dazu, die SandyBridge, IvyBrige CPUs nehmen doch sowieso im Idle nur zw. 3-5W auf, wie soll man da 4W einsparen können? Stromfressen? Geht's eigentlich noch?


    Und warum kauft Ihr Euch nicht einfach einen 1-Kerner, wenn Ihr mit einem Kern auskommt? Oder einen 2-Kerner? Oder nehmt gleich eine andere "super schnelle Basis", ARM irgendwas oder Intel Centerton ...


    Wenn Ihr die Effizienz Eures Netzteil um ein paar Prozentpunkte verbessert, erreicht Ihr jedenfalls nennenswert mehr, wie auch bei der Grafik oder HDD ... die Leistungsaufnahme des Gesamtesystems ist wichtig nicht einzelne Punkte ...


    Regards
    fnu

    HowTo: APT pinning

  • Zwei Fragen dazu, die SandyBridge, IvyBrige CPUs nehmen doch sowieso im Idle nur zw. 3-5W auf, wie soll man da 4W einsparen können? Stromfressen?


    Hab auf die Schnelle nix dazu gefunden, haste mal ne Quelle dazu?
    Ich könnte mir aber gut vorstellen, dass das "abschalten" der Cores mehr bringt als das Schlafenlegen, dabei wird ja immer noch Energie (wenn auch gering) verbraucht. Unsereins hört ja auch nicht im Schlaf auf zu atmen ;) Verlustleistung der Spannungsregler, die evtl. jetzt weniger zu tun haben etc. Das _könnte_ sich schon auf den Wert summieren.


    Zitat

    Geht's eigentlich noch?


    Na, schlechten Tag gehabt?


    Zitat

    Und warum kauft Ihr Euch nicht einfach einen 1-Kerner, wenn Ihr mit einem Kern auskommt? Oder einen 2-Kerner? Oder nehmt gleich eine andere "super schnelle Basis", ARM irgendwas oder Intel Centerton ...


    Weil der Quad-COre nun mal schon da ist und ich beim 1-Kerner nicht einfach mal 3 Cores dazuschalten kann wenn ich sie brauche. Was bei meinem Server durchaus vorkommt. Ein "Downgrade" auf einen Single Core macht aber z.B. dann Sinn, wenn nicht viel los ist. Und überhaupt, die beiden Antworten auf nahezu alle Fragen: 42 und "weils geht".


    Zitat

    Wenn Ihr die Effizienz Eures Netzteil um ein paar Prozentpunkte verbessert, erreicht Ihr jedenfalls nennenswert mehr, wie auch bei der Grafik oder HDD ... die Leistungsaufnahme des Gesamtesystems ist wichtig nicht einzelne Punkte ...


    Und wie nennst Du die vorgeschlagenen Verbesserungen? Sind dass keine einzelnen Punkte? Die Summe aller Kleinigkeiten macht es, genau das, was Du sagst. Und wenn man da an der CPU im laufenden Betrieb ohne Neuanschaffung auch noch was sparen kann, dann umso besser.


    Und jetzt ne ruhige Nacht.
    Markus

  • Hab auf die Schnelle nix dazu gefunden, haste mal ne Quelle dazu?

    Kann man unter einem "g'scheiten" OS auslesen, siehe Anhang für meinen Core i3-3220 ... ;D


    Schlechten Tag gehabt?

    Das ihr das immer so bierernst nehmt. Aber bei 4W von Stromfressen zu reden und dazu 30 oder so "halbseidene Glaskugel-Links" zu posten, finde ich schon a'weng abgehoben, hat was von einem Esotorik-Trip ... :hat2


    Nicht falsch verstehen, bin immer offen für Einsparungen, sinnvoll, zuverlässig, bodenständig ... man muß sich immer fragen, warum findet sowas nicht den Weg in die Mainstream Installationen, wenn's doch so toll ist ... ?


    1-Kerner nicht einfach mal 3 Cores dazuschalten kann wenn ich sie brauche.

    Ok, Server verstehe ich, ging aber Aufgrund des Eingangspost von einem VDR aus, der vmtl. nie wirklich 4 Intel-Kerne benötigt ...


    Und wie nennst Du die vorgeschlagenen Verbesserungen?

    Stimmt sind Einzelschritte, bringen aber jede einzelne mehr als das beschriebene ge'patch'e ... ^^


    Regards
    fnu

    Bilder

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Es war noch etwas mehr zu tun, damit die Anzeige auch zur wirklich verwendeten Anzahl der CPUs passt. Patch (komplett):


    Hallo Markus,


    dein patch funktioniert bei mir gut, sehe keine Fehler mehr. Ich denk das geht bei mir in kürze produktiv :) Vielen Dank dafür! :tup



    Bzgl. der Latenzzeiten lies mal hier: http://www.mnm-team.org/pub/Fo…10/PDF-Version/gold10.pdf



    Stromverbrauch momentan:
    CPU Volllast (stress --cpu 7) 92W,
    1 Kern aktiv, idle 62-64 W,
    Kernen aktiv, idle 68-69 W


    Viele Grüße
    Ralf

    VDR - Die 'Killerapplikation' die mich zu Linux gebacht hat ;)

    Neues yaVDR HD-System ging am 20.12.2013 in Betrieb :)
    yaVDR 0.7-ansible im Aufbau ab Jan. 2024.


  • Hi fnu,


    die ca. 4 W Ersparniss sind das was ich auf meinem Energiekostenschätzgerät sehe (Bitte nun keine Diskussion über die (Un-)Genauigkeit, hab ich alles gelesen.) Ich poste in kürze Langzeittest-Ergebnisse, dann wissen wir's genauer.
    Unter den vielen Links (Ok, kann man auch als leicht off-topic ansehen :) sind auch die von den Stromsparspezialisten hier aus dem Forum. Dürfte Dir bekannt sein ;) Leistungsaufnahme yavdr
    Meine Komponenten habe ich nach sehr viel Recherche auch unter Stromsparaspekten ausgewählt. Wenn ich an die 20-30W rankommen will, muss ich halt auf die Himbeere oder so wechseln ;)


    Nur weil die CPU 4 Kerne hat, muss ich sie ja nicht unnötig laufen lassen. Im übrigen sind im yavdr viele Stromsparfeatures bereits eingebaut, wie Frontend abschalten und dynamite (Spart bei mir auch einiges). :tup


    Grüße
    Ralf

    VDR - Die 'Killerapplikation' die mich zu Linux gebacht hat ;)

    Neues yaVDR HD-System ging am 20.12.2013 in Betrieb :)
    yaVDR 0.7-ansible im Aufbau ab Jan. 2024.

  • Ralf_D


    Wie gesagt, halte da immer gerne auch den Rücken hin wenn's um solche Themen geht und werde da gerne von anderen mit wachsender Freude angegangen, aber die Nummer geht selbst mir bisser'l zu weit.


    Warum baut man einen 4 Kerner in einen VDR, schaltet die Kerne ab die man sowieso nie benötigt, da ist IMHO schon das HW-Design falsch, oder?


    Und ja, 4 Watt im Idle halte ich im Falle von SNB/IVB oder gar HSW für nicht haltbar oder das Prinzip drosselt versehentlich noch was anderes mit ...


    Bei einem Server, wie im Fall von Mahlzeit, halte ich das dagegen für keine so schlechte Idee, weil der durchaus die Leistung und Kerne abfragen könnte, hier würde ich es sogar selbst mal testen.


    Regards
    fnu

    HowTo: APT pinning

  • Hab noch was nettes gefunden: http://software.intel.com/en-u…les/intel-power-gadget-20


    Gibts für Windows und für Linux. Unter Windows 8.1 habe ich mit der Abschaltung von 3 Kernen (6HT "Kerne") (Core i7 2700) ca. 1,5W Ersparnis beim Package im Idle. Im BIOS sieht das aber gleich ganz anders aus. Da habe ich zwischen "all Cores (HT)" und "1 Core (HT)" eine Differenz von 30W (das natürlich nicht mit dem Tool gemessen, sondern mit der "Hardware").
    Ich habe das Tool auch unter Linux mal gestartet, aber auf dem Server (Core i7 3700) ist aktuell zu viel los, um genaue Werte zu bekommen. Man muss das ganze mal länger laufen lassen oder auf einem dedizierten System ausmessen (keine 10 VMs die in die Suppe spucken ;) ).


    cu
    Markus

  • Ich hab es eben bei meinem MSS C847MS-E33 versucht und einen der 2 Kerne abgeschaltet.
    Das klappte zwar einwandfrei, aber im Verbrauch gab es keinen messbaren Unterschied.


    Scheint also schon stark von der Hardware abzuhängen, was es bringt.
    Evtl. auch vom Lastzustand, mein System war wirklich Idle. Kann glatt sein, dass es bei geringer Last was bringt.

    Gruss
    SHF


  • So, ich habe mal mit dem oben verlinkten Intel-Tool eine "Langzeitmessung" über 360s gemacht. Einmal mit allen 8 Cores (4 Cores + HT) und einmal mit 2 Cores (1 Core + HT).


    Aufruf: ./power_gadget -e 1000 -d 360
    IA Energy (Energy of the CPU/processor cores): 4,6844 W (1 Core/2 HT)


    IA Energy (Energy of the CPU/processor cores): 5.2335 W (4 Core/8 HT)


    Die Ersparnis ist (absolut gesehen) eher mager, relativ aber immerhin 11,72% (So macht die Statistik aus einer kleinen Zahl ein großes Ergebnis ;)). Ich schätze, dass sich das auf jedes System etwas anders auswirkt.


    Es wäre interessant, wie die Werte über diesen Zeitraum bei Ralf_D aussehen. Ob es dann wirklich 4W sind, die gespart werden. Neben der Average IA Power wäre da evtl. noch die Average Processor Power interessant. Da ist bei mir nur 0,5535W Unterschied, was in etwa genau die Differenz der IA Power ist.
    Definiert ist die Average Processor Power laut Intel so:
    Processor Energy (Total energy of the processor) = IA Energy + GT Energy (if applicable) + Others (not measured).
    Wenn Ralf_D also wirklich mehr spart, ist entweder die GPU mit im Spiel oder eine Komponente unter "other".


    cu
    Markus

  • Update: Ich hatte die Abschaltung jetzt einige Zeit am laufen, hat an sich auch gut funktioniert, aber dann kam der WAF ins Spiel. Bedingt durch die Abschaltung der Kerne bis auf einen verbleibenden hatte der virtualisierte Server (2 virtuelle Kerne) kurzzeitig Probleme mit DMA.

    Code
    Dec  3 11:22:05 vdr kernel: [208229.131811] Overflow dma 6
    Dec  3 11:22:05 vdr kernel: [208229.132235] Overflow dma 7
    Dec  3 11:22:05 vdr kernel: [208229.132539] Overflow dma 0


    VDR Restart (der Watchdog hat zugeschlagen) und es ging wieder, aber trotzdem unschön, Das Beerchen mit dem Vompclient im Wohnzimmer als auch der VLC über streamdev hatten dann kein Bild mehr.


    Auf Grund meiner Messungen und der doch relativ geringen Einsparung auf meinem System, lasse ich das Thema erst mal ruhen. Auf jeden Fall aber ein netter Exkurs und das Intel-Tool zur Verbrauchsmessung ist ist auch ganz interessant. Ich bin dennoch auf die Werte von Ralf_D gespannt ;)


    cu
    Markus

  • Hi,


    so da sind die mit Spannung erwarteten Werte 8)


    Ich mache immer Langzeitmessungen von ca. 10h. Dadurch wird die "Gesamt kWh" Anzeige hinreichend genau, siehe Spoiler.


    Messung 1&2: Initiale Bestimmung des Verbrauchs: 64,12 W
    1 cpu, 2 tuner


    Messung 3: Wieviel mehr Leistung brauchen 4 CPU-Kerne statt 1 Kern? 69,93 W +9,07% +5,81 W <--- Mehrverbrauch für 4 Kerne statt 1 Kern online
    4 cpu, 2 tuner


    Erklärungsansatz:
    Wie schon vorher geschreiben idled die CPU im reinen VDR-Betrieb zu 99% rum. Trotzdem werden die Kerne immer wieder geweckt. Anscheinend können durch explizite Abschaltung dann doch noch tiefere Schlafzustände erreicht werden. Soweit ich weiss gibt's auch Unterschiede beim IO-APIC, der wird nur bei mehreren Kernen gebraucht.


    Da andere keine so deutliche Ersparnis haben, hier auch die Konfig:



    Die Graka läuft (leider) bei HD-Material (Alle tests mit Kika HD) im Leistungsmodus perf=1, das habe ich öfters geprüft.
    "Frontend detach" fällt als Einflussquelle auch aus, Bild war immer da. Das spart auch mehr als 5 W, siehe unten.


    nvidia-settings --display 0:1 -q GPUPerfModes -t
    perf=0, nvclock=405, memclock=324, processorclock=810 ;
    perf=1, nvclock=750, memclock=667, processorclock=1500


    Frontend Detach:
    [yavdr-0.5] Frage zur neuen "vdr-frontend.conf"
    Frontend Detached: 70 W -> 65 W -> 57 W Spart ca. 13 W Die 57 W werden erreicht, wenn der Performance Level von 1 -> 0 wechselt. D.h. das spart 8 W




    Meßgenauigkeit:


    Edit: Konfig aus dem spoiler raus.


    Grüße
    Ralf

    VDR - Die 'Killerapplikation' die mich zu Linux gebacht hat ;)

    Neues yaVDR HD-System ging am 20.12.2013 in Betrieb :)
    yaVDR 0.7-ansible im Aufbau ab Jan. 2024.

    5 Mal editiert, zuletzt von Ralf_D ()

  • Ralf_D


    Ich habe mir den ganzen Thread nochmals durchgeguckt, irgendwie fehlt mir tatsächlich eine Beschreibung Deiner HW, oder? Ausgehend vom ersten Thread ging ich von einer Intel Basis aus ... ?


    Stutzig haben mich jetzt Deine Leistungsaufnahmen gemacht, die sind doch generell überraschend hoch ... ? Mir dünkt fast, warum das bei anderen evtl. nix mehr bringt ... das sieht irgendwie nicht nach SNB, IVB oder gar HSW aus ...


    Regards
    fnu

    HowTo: APT pinning

  • Ralf_D


    Ich habe mir den ganzen Thread nochmals durchgeguckt, irgendwie fehlt mir tatsächlich eine Beschreibung Deiner HW, oder? Ausgehend vom ersten Thread ging ich von einer Intel Basis aus ... ?


    Steht im Beitrag über deinem im Spoiler. Core i5...


    Zitat

    Stutzig haben mich jetzt Deine Leistungsaufnahmen gemacht, die sind doch generell überraschend hoch ... ?


    In der Tat, da hat mein Serverchen mit Core i7 deutlich weniger. Gut, der hat auch keine GT630 drin...


    cu
    Markus

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!