Warum reduziert Docker in diesem Benchmark den Stromverbrauch auf einem Internet of Things-Gerät?

10

Ich habe mich für die Anwendungen von Docker auf IoT-Geräten wie Raspberry Pis interessiert.

Nachdem ich eine Leistungsbewertung von Containertechnologien auf Geräten im Internet der Dinge gelesen hatte , war ich durch eines der Ergebnisse leicht verwirrt. In Tabelle 1 zeigt der unter Apache 2 Benchmarking (200 Clients) angegebene Stromverbrauch, dass die Verwendung eines Docker-Containers den Stromverbrauch trotz des Overheads der Containerisierung mit Docker verringert .

Warum tritt das auf? Ist dies zuverlässig genug, um den Stromverbrauch von IoT-Geräten geringfügig zu senken, und gibt es Nachteile?

Aurora0001
quelle
1
Durch das Lesen der Tabellen auf der letzten Seite haben Sie das etwas rückwärts. Der Stromverbrauch ist bei "Docker" meist höher als bei "Native". Der Text bezieht sich auf einen Fall, in dem es auch einen Leistungsunterschied gibt (er befindet sich im unteren rechten Quadranten von Tabelle I), vermutlich aufgrund eines erhöhten Netzwerkengpasses für den Container, der einen weniger aktiven Prozessor bedeuten würde.
Goldlöckchen
@delicateLatticeworkFever Vielleicht sehe ich mir "5000 Anfragen", "25000 Anfragen" und "100000 Anfragen" an, wobei der Stromverbrauch "-4,63%", "-3,84%" bzw. "-5,29%" beträgt . Der Leistungsunterschied scheint die wahrscheinliche Ursache für den Leistungsunterschied zu sein, der in einer Antwort diskutiert werden sollte. Ein Teil meiner Frage ist, ob Sie das als Kompromiss nutzen könnten, wenn Sie mit einer leicht verschlechterten Leistung zufrieden wären, denn es schien mir eine interessante Idee zu sein.
Aurora0001
1
Wenn diese 5000 Anfragen länger gedauert haben, bedeutet dies, dass weniger als 100% weniger Energie pro verwendeter Aufgabe benötigt werden. Das könnte die allgemeine Form dieser Frage sein, und als zufällige Vermutung könnte ich sagen, dass es mit Energie zu tun hat, die durch Wärmeableitung verloren geht. Sind (zumindest einige) Prozessoren bei maximaler Auslastung weniger effizient? Könnte leicht sein. In diesem Fall können Sie, wenn Sie den Vorteil nutzen möchten, Tests mit etwas gedrosselter CPU durchführen und prüfen, ob dies den gleichen Vorteil bietet (es läuft definitiv langsamer und verbraucht weniger Strom). Hinweis auf einem 5W-Gerät Ich bin mir nicht sicher, ob +/- <5% sinnvoll ist.
Goldlöckchen
Note on a 5W device I'm not sure if +/- <5% is meaningful.- Das ist ein guter Punkt, aber wenn Sie IoT-Geräte in großem Maßstab betreiben, werden die Energieeinsparungen signifikanter (und es ist trotzdem ein interessantes Gedankenexperiment). Wenn Sie Ihre Gedanken zu einer Antwort zusammenfassen möchten, sind Sie wahrscheinlich genau richtig, wenn Sie die von mir aufgeworfenen Fragen beantworten.
Aurora0001
1
Hmmm, ich bin mir nicht sicher, ob meine schnelle Hypothese richtig ist. auf diesen Streif es scheint , ist die Beziehung linear: stackoverflow.com/questions/6128960/... ... und die Steigung auf diesem Diagramm ist <1, so dass ein ausgereizt Prozessor sein sollte mehr effizient.
Goldlöckchen

Antworten:

7

Nach einiger weiteren Untersuchung, ich denke , das Problem in der Frage , dass, obwohl die Leistung (Geschwindigkeit der Energieübertragung) reduziert wurde, der Gesamtenergieverbrauch wurde unter Verwendung von Docker erhöht, so dass kein Vorteil dort in Form von geringer Stromkosten ist.

Basierend auf den Zahlen des Papiers für 100.000 Anfragen können wir den Energieverbrauch anhand der folgenden Formel berechnen:

Energie = Leistung x Zeit

Angesichts der Tatsache, dass der native Code 2,4893 W Strom verbrauchte und ungefähr 170 Sekunden dauerte (siehe Abbildung 3, Native 200), wissen wir, dass folgende Energie verbraucht wurde:

2,4893 W * 170 s

= 423,181 Ws = 423,181 J (1 Wattsekunde entspricht einem Joule, oder mit anderen Worten, ein Watt ist ein Joule pro Sekunde)

Für den Docker-Code betrug der Stromverbrauch 2,3642 W, die benötigte Zeit jedoch 220 Sekunden.

2,3642 W * 220 s

= 520,124 Ws = 520,124 J.

Daher war der Gesamtenergieverbrauch für das Beispiel um 96,943 J höher, was eindeutig unerwünscht ist, wenn der Energieverbrauch ein Problem darstellt. Die Verwendung von Docker bietet jedoch andere Vorteile für die Bereitstellung und Verwaltung. In Umgebungen mit engen Einschränkungen (z. B. nur mit Batterie) scheint dies jedoch am besten vermieden zu werden.

Aurora0001
quelle