Messungen des Stromverbrauchs

Die Messgeräte

Um den wahren Stromverbrauch (also das, was am Ende auf der Stromrechnung auftaucht) des Gesamtsystems zu messen, habe ich einen Shelly Plus Plug S verwendet. Das ist ein intelligenter Zwischenstecker für Schuko-Steckdosen, der über Wifi und/oder Bluetooth gesteuert werden kann. Durch die Messung auf der 230-Volt-Seite (Primärseite) erfasst man auch den Wandlungsverlust des Steckernetzteils. Dieser hängt von der Energieeffizienz des Netzteils, aber auch von der Last ab: die meisten Netzteile haben eine nicht-lineare Effizienzkurve, die im Bereich von 50% der zulässigen Höchstlast ihr Maximum besitzt. Das bedeutet, dass man mit einem "auf Kante genähten" Netzteil keineswegs Strom spart, sondern im Gegenteil sogar einen höheren Wandlungsverlust verursacht. Das Steckernetzteil in meinem Aufbau ist ein Original-Zubehörteil mit Himbeere drauf und kann bis zu 2,5 Ampere liefern. Das entspricht bei 5 Volt einer Leistung von 12,5 Watt, also deutlich mehr, als das System selbst bei Lastspitzen aufnehmen sollte. (Also eigentlich nicht ideal, weil die Effizienz unterhalb von 50% Last ebenfalls abnimmt.)

Eine andere Frage, die ich mir gestellt habe, betraf den Verbrauch auf der USB-Seite, insbesondere was die Versorgung der Festplatten betrifft. Zunächst hatte ich nur eine Magnetplatte vorgesehen, bei der die zentrale Frage war: wie viel spare ich, wenn der Motor abschaltet? Später gesellte sich noch die SSD hinzu, bei der sich eine weitere Fragen ergab: reicht das noch, oder überlaste ich vielleicht den Pi damit? Zur Erinnerung: in der Default-Konfiguration ist die Stromentnahme via USB auf 600 mA begrenzt, durch Anpassung der Konfiguration sind bis zu 1200 mA möglich. Um diesen Fragen auf den Grund gehen zu können, habe ich mir ein Messgerät für USB-Ports gekauft. Dieses sieht wie ein USB-Stick mit eingebautem Display und einem eigenen USB-Port aus, das einfach zwischen Host und Gast bzw. Netzteil und Gerät in die Kabelverbindung gesteckt wird. Bei den üblichen Verdächtigen (eBay, Amazon, ...) findet man das Gerät, wenn man nach "AT35" sucht; meins hatte 16,99 EUR gekostet.

Auf dem Foto sieht man, dass das USB-Messgerät eine hohe Auflösung in der Messwertdarstellung besitzt (z.B. "0.0827A" = 5 signifikante Dezimalstellen). Das wären 16 Bit, normalerweise muss man sich für 12 Bit schon ziemlich anstrengen. Ich gehe also ehrlich gesagt nicht davon aus, dass die letzte Ziffer im Messwert viel taugt und werde die Ergebnisse dementsprechend auch großzügig runden. Aber nur zur Beruhigung: die 4,7 Volt auf dem Foto wurden durch ein USB-1.1-Verlängerungskabel verursacht; mit einem anderen Kabel waren es ziemlich genau 5,0 Volt (obwohl das Kabel deutlich dünner war).

Gesamtstromaufnahme

Für die Gesamtstromaufnahme habe ich mir vier verschiedene Szenarien überlegt. Drei davon entsprechen typischen Benutzungsmustern der Filebox, das Leerlauf-Szenario ohne Dienste dient als Orientierungspunkt für andere Projekte und zur relativen Einordnung der Szenarien mit Last. Für jedes Szenario habe ich drei Werte erhoben um die Streuung abschätzen zu können. Die Werte selbst habe ich aus der Weboberfläche des Shelly-Plugs abgelesen (also Momentanverbrauch). Basierend auf den Werten und meiner Beobachtung, wie häufig sie auftauchen, habe ich einen subjektiv gewichteten, gefühlten Mittelwert gebildet.

Szenario Messung 1 Messung 2 Messung 3 Sagen wir mal
Leerlauf, kein Docker-Dienst, abgezogene Festplatten 2,7 W 2,5 W 2,7 W 2,5 W
Leerlauf, Docker-Dienst + 6 Container, Festplatten schlafen 3,6 W 3,6 W 3,2 W 3,5 W
Nutzung von Filebrowser (SSD beschäftigt, HDD schläft) 4,7 W 5,2 W 5,9 W 5 W
Backup-Erstellung läuft (SSD und HDD beschäftigt) 5,1 W 6,5 W 5,9 W 6 W

Diese Messwerte sind auch eher als Hausnummern zu verstehen. Einerseits ist die Messung der Stromaufnahme eines dynamischen Systems ziemlich knifflig, insbesondere was die Vergleichbarkeit und Stetigkeit der Last betrifft. Andererseits ist auch der Shelly-Plug kein kalibriertes Messgerät, sondern etwas, das man in Fachkreisen "Schätzeisen" nennt. Auch hier sollen 5 signifikante Stellen vorhanden sein, in einem Messbereich von 0 bis 12 Ampere (entsprechend 0 bis 2500 Watt). Die angezeigte Leistung ergibt sich aus zwei miteinander multiplizierten Werten (Spannung und Strom), die bereits ungenau sind. Also selbst wenn wir gutmütig 4,5 Stellen Genauigkeit ansetzen, dann wäre der Messfehler im Bereich von ± 1 Watt; also dicht an dem, das wir ablesen. Aber ich vermute, dass der relative Vergleich zwischen den Werten ganz brauchbar ist.

Zur groben Einordnung:

Messungen auf der 5-Volt-Leitung

Für die Messungen auf der 5-Volt-Leitung (die tatsächlich die meiste Zeit sogar 5,1 Volt hatte) habe ich die Geräte isoliert betrachtet. Das heißt: bei SSD bzw. HDD war das Messgerät zwischen dem USB-Port des Raspberry Pis und dem jeweiligen Gerät platziert. Bei der Messung des Raspberry Pis selbst war das Messgerät am Steckernetzteil platziert, wobei ich mit abgezogenen Festplatten gemessen habe. Dies ist also ein halbwegs zuverlässiger Wert für Projekte, bei denen nur die SD-Karte genutzt wird. Die Werte für die Spalte "Typisch" sind subjektiv ermittelt; ich habe einen Eindruck notiert, welche Werte ich besonders häufig im Display gesehen habe. Werte mit Nullen am Ende sind als circa-Angaben zu sehen; da hat es keinen Sinn ergeben, signifikante Stellen vorzugaukeln.

Szenario Minimum Typisch Maximum
SSD, Dateien kopieren (lesen + schreiben) 140 mA
SSD, /dev/zero in Datei (nur schreiben) 160 mA
SSD, Leerlauf (wach, keine Zugriffe) 96 mA
SSD, Ruhezustand (nach 3 Minuten) 82 mA
HDD, Dateien kopieren (lesen + schreiben) 400 mA 480 mA 500 mA
HDD, /dev/zero in Datei (nur schreiben) 520 mA
HDD, Leerlauf (wach, keine Zugriffe) 177 mA 177 mA 300 mA
HDD, Ruhezustand (nach 30 Minuten) 77 mA 81 mA
Raspberry Pi, Leerlauf ohne Docker-Dienst 290 mA
Raspberry Pi, Leerlauf mit Docker-Dienst + 6 Container 290 mA 310 mA
Raspberry Pi, Last (find /usr -type f | xargs md5sum) 350 mA 400 mA 440 mA
Raspberry Pi, Last (/dev/random nach /dev/null schreiben) 430 mA

Man kann feststellen, dass die SSD im laufenden Betrieb deutlich weniger Strom aufnimmt als die Magnetplatte. Im Ruhezustand sind sie sich ebenbürtig, wobei man in der Stromaufnahme der HDD das gemütliche Blinken der Status-LED sehr genau verfolgen kann. Außerdem fällt auf, dass die SSD per Default nach 3 Minuten in den Ruhezustand wechselt, während die Magnetplatte erst nach 30 Minuten ihren Motor ausschaltet. (Diese Werte können mit hdparm manipuliert werden.) Ergibt auch soweit Sinn: die SSD hat keine mechanischen Teile, die beim Starten und Stoppen gestresst werden. Bei der HDD hatte ich im Leerlauf einen "Schluckauf" vernommen, bei dem scheinbar noch etwas nachgetragen wurde; dies hatte keine Auswirkung auf die Zeit bis zum Eintritt in den Ruhezustand.

Beim Raspberry Pi selbst ergibt sich ein Wert im Leerlauf, der zwar leichten Schwankungen unterworfen ist, aber insgesamt doch sehr stabil gewirkt hat. Interessanterweise fällt dabei kaum ins Gewicht, ob der Docker-Dienst und die 6 auserwählten Container gestartet wurden oder nicht. Unter Volllast ergibt sich ein ca. 130 mA höherer Strombedarf, wobei ich nicht geprüft hatte, wie hoch die Auslastung tatsächlich war (vermutlich war auch nur ein Core beschäftigt).

In Bezug auf die ursprüngliche Fragestellung: ja, die Begrenzung auf 600 mA für alle angeschlossenen USB-Geräte zusammen kann ein Problem sein, alleine die gesehenen Lastspitzen betrugen ca. 680 mA und es kann sein, dass dies noch nicht der Worst-Case war. Die Erhöhung des Limits auf 1200 mA ist also sinnvoll.

Der Wirkungsgrad des Netzteils

Als letzte Messreihe habe ich noch einmal die Gesamtstromaufnahme mit den gleichen Szenarien wie bei der Messung mit dem Shelly-Plug erfasst, nur diesmal mit dem USB-Messgerät auf der 5-Volt-Leitung hinter dem Netzteil (also ohne Wandlungsverlust). Die Werte sind wie erwartet niedriger ausgefallen:

Szenario Messung 1 Messung 2 Messung 3 Sagen wir mal
Leerlauf, Docker-Dienst + 6 Container, Festplatten schlafen 2,4 W 2,6 W 3,0 W 2,7 W
Nutzung von Filebrowser (SSD beschäftigt, HDD schläft) 3,5 W 3,77 W 3,88 W 3,7 W

Daraus lässt sich eine ungefähre Hausnummer für den Wirkungsgrad des Netzteils berechnen. Im Leerlauf beträgt dieser ca. 2,7 W / 3,5 W = 0,77 und im Nutzungs-Szenario ca. 3,7 W / 5 W = 0,74. Das passt ganz gut zu den Angaben, die man so "im Internet" findet; hier wird Steckernetzteilen dieser Größenordnung ein typischer Wirkungsgrad von 75% zugestanden, den ich hiermit bestätigen kann.


Zurück zur Hauptseite