Feature Request: Energie Monitoring

  • Hi zusammen!


    Gewissermaßen handelt es sich bei Folgendem um einen "Feature Request" - wohl wissentlich, dass die Umsetzung dessen ein umfangreiches Projekt und nicht "mal eben getan" wäre. Dennoch würde ich das Thema mal gerne als "thought sparker" und Ausgangspunkt für Ideen und Diskussion aufbringen.


    GreenIT – also im Wesentlichen die umwelt- / ressourceneffiziente Nutzung von IT-Infrastruktur, Software & Co. – wird als Thema immer präsenter. Ein Teil dessen ist die Energieeffizienz und wiederum ein Teilaspekt davon der energieeffiziente Betrieb von Software. Das spielt dann u.a. mit rein, wie effizient das Rechenzentrum im Allgemeinen ist (Stichwort PUE), wieviel Strom der jeweilige Rechner verbraucht und wie ressourcenschonend meine Software läuft.


    Microsoft beschreibt in diesem Artikel, wie man entsprechende Kennzahlen grob abschätzen kann. Allerdings dient die TDP der CPU da eher als eine sehr grobe Obergrenze für den tatsächlichen Stromverbrauch. Bei AWS gibt es ein Tool, um die CO2 Bilanz seiner VMs einsehen zu können Cloud Carbon Footprint ist eine Tool, um den "Fußabdruck" der eigenen Software bei den großen Hyperscalern grob messen zu können.


    Was ich super cool und hilfreich fände ist, wenn netcup mittelfristig auch so solches Monitoring einführen würde! Idealerweise gäb es eine API, die zu jedem Zeitpunkt den aktuellen Stromverbrauch - oder in Kombination mit Daten von z.B. electricitymaps - sogar die CO2 Intensität zurückgibt.


    Natürlich ist die Umsetzung von so etwas nicht ganz trivial und in jedem Fall würde man nur relativ grobe Approximationen erhalten. Bei Root Servern wäre dei vermutlich genaueste Möglichkeit, mit tatsächlichen "Hardware"-Stromzählern zu arbeiten, die vor dem Netzteil des Servers hängen. Für VMs ist das ganze noch etwas schwieriger und hängt vermutlich davon ab, wie flexibel der verwendete Hypervisor ist. Man könnte ebenfalls mit Stromzählern arbeiten und den Verbrauch dann anteilig auf die Auslastung durch die jeweilige VM runterbrechen o.ä. Moderne CPUs liefern auch "softwareseitig" Daten zum Stromverbrauch (z.B. auslesbar mit Tools wie powertop). Natürlich ist das auch nicht sehr genau und ignoriert den Verbrauch durch alle anderen Hardwarekomponenten, aber wäre vielleicht dennoch eine denkbare Option.


    Was sind eure Gedanken dazu? :)

  • Was sind eure Gedanken dazu? :)

    Warum sollte man diese, technisch interessante, aber ökologisch vollkommen unsinnige, Spielerei wollen?

    Das umsetzen würde sehr viele ökonomische und ökologische Ressourcen kosten und wahrscheinlich 0 KWh einsparen.
    Würdest du einen "kleineren" server buchen weil er weniger Strom verbraucht?

  • Quote

    Würdest du einen "kleineren" server buchen weil er weniger Strom verbraucht?

    Wenn ich die Wahl zwischen zwei sonst äquivalenten Servern hätte, bei denen einer aber energieeffizienter ist, definitiv ja. Klar, dass ein kleinerer Server Sinn macht, wenn ich meinen großen im Schnitt nur zu 10 % auslaste, weiß ich auch ohne Energy Monitoring.


    Du hast recht, vor allem ist es erstmal eine Spielerei. Aber ich glaube, dass es bei Nutzern auch allgemein "awareness" für das Thema schaffen könnte, wenn man auf einen Blick einsehen kann, wie viele kg CO2 man (schätzungsweise) mit seiner Software verursacht. Davon abgesehen wäre es aber auch gewissermaßen einfach ein "USP" für netcup, da so etwas meines Wissens noch nicht viele andere machen.

  • Ich finde das eigentlich auch voll cool, würde ich aus Neugierde auch wollen ^^ Das könnte schon ein Treiber sein, dass man z.B. mehrere Server zu einem vereint. Als Person die sowas umsetzen soll, würde ich wohl abkotzen und eigentlich heißt es auch, dass netcup weniger Geld machen würde.


    Aber als simple "nice to have" Anfrage finde ich das schon erwähnenswert :)

  • Ich seh's wie Homwer.

    Geteilte Resourcen lassen sich eben nicht trivial messen und aus für den einzelnen Kunden ungenauen Ergebnissen folgt dann wiederum weitere Resourcenbindung.

    Hier vertraue ich dem Chef und seinem Team um netcups Produkte so preisbewusst und resourcenschonend, wie möglich zu betreiben, was man an der Einführung der ARM-Server ja sehen kann.

    »Hauptsache BogoMIPS!«

    Fleischfresser

  • Ja. Ich versuche meine Server immer so zu wählen, dass sie nicht überdimensioniert sind.

    Und u.a. auch wegen der Energieeffizienz bin ich so interessiert an den ARM-Servern. :)

    Das ist übrigens der Grund, warum ich begeistert von den Angeboten eines Netcup-Mitbewerbers bin, wo man automatisiert stundenweise KVM-Instanzen buchen und deren Leistung (CPU-Kerne/RAM) skalieren kann, ohne die genannte Instanz neu aufzusetzen (was die virtuelle Festplatte anbelangt). Hier ist bei Netcup – seit Jahren – immer noch jede Menge Luft nach oben.

    Wenn ich die Wahl zwischen zwei sonst äquivalenten Servern hätte, bei denen einer aber energieeffizienter ist, definitiv ja. Klar, dass ein kleinerer Server Sinn macht, wenn ich meinen großen im Schnitt nur zu 10 % auslaste, weiß ich auch ohne Energy Monitoring.

    Dies ist – leider – eine klassische Übervereinfachung, die man allenthalben liest: Nur, weil eine neue Generation irgendeines "Geräts" energieeffizienter ist, heißt es noch lange nicht, dass die Gesamtbilanz (Produktion des neuen Geräts/Entsorgung des alten "Geräts") über die Nutzungsdauer positiv ist. Bei anteilig ge-/vermieteten "Geräten" ist die Berechnung noch wesentlich schwieriger, wenn keine nahezu vollständige Auslastung erzielt werden kann – was nutzt es, wenn die neue Rechner­generation für Cloud-Computing effizienter ist, wenn neue Hosts zusätzlichen Platz benötigen, weil man Altverträge nicht kündigen kann? Die Verbesserung der Energieeffizienz ist immer mit Kosten verbunden (Entwicklungs-/Implementations-/Reifegradprozesse), welche wirtschaftlich sein müssen. Auf obiges Beispiel bezogen: Man kann als Anbieter anteilig Kunden transparent auf neue, teurere Systeme umziehen (unter Erfüllung der vertraglich zugesicherten Leistungen), aber die zugehörige Kosten-/Nutzenrechnung ist sehr komplex, weil vielschichtig.

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE/edit?usp=sharing

    Edited 2 times, last by m_ueberall ().

    Like 1
  • Naja, Moment: https://www.netcup.de/ueber-netcup/oekostrom.php


    Der Betriebsstrom ist ja soweit abgedeckt, dass es hier nicht zu einem CO2 Ausstoß kommen sollte.

    Klar kann man da jetzt einen Strommix heranziehen, das ist aber nicht sinnvoll.


    Auch verbraucht eine größere VM nicht unbedingt mehr Ressourcen.

    Was man betrachten könnte, wären die Emissionen in der Herstellung der Hardware.


    AWS und Microsoft sitzen selbst in den USA, da wird noch viel mehr Strom Fossil hergestellt - deshalb machen da CO2 Monitorings Sinn, in Deutschland eher weniger.


    Green-IT ist ein alter Hut. Dass was heute auf den Systemen an Software läuft, ist Energietechnisch einfach nur eine Vollkatasthrophe, allenvoran Java (Behördliche Fachanwendungen, Lucene, ElasticSearch etc.) und JavaScript (jegliche Electron Anwendungen, Slack, Teams, VS Code, NodeJS Server Anwenungen etc. pp.)

    Selbst bei E-Mails müssen immer größere Banner mit Unternehmenswerbung vollgeklatscht werden, Spam und Scam auf Kosten anderer etc.

  • Hat etwa Wasserkraft eine aussagekräftige CO2-Bilanz? Und was würde die bedeuten, wenn nahezu alle Klimarechenmodelle in Bezug auf CO2 in der seriösen Wissenschaft bereits als widerlegt anzusehen sind?


    Bezüglich Laufzeiten und Energiebilanzen: Wenn Programmierer vernünftig programmieren würden, hätten wir das Green-IT Problem so gar nicht.

    Wenn beispielsweise jemand für ein Status-Interface für einen VPN auf Basis von PHP für 120 Teilnehmer 120 mal in der Schleife ein böses exec ausführt, um es danach Zeilenweise mit string-OPs zu zerteilen und mit Ergebnissen anderer execs aus der Schleife zusammenzuführen, dann ist das weder besonders effizient, noch besonders klug, noch besonders green. Ich hatte so einen Spaßvogel in einem Verein, der mir das auf einem Intel Atom gemacht hat, der sowieso unterdimensioniert war. Bei vernünftiger Programmierung desselben Tools waren acht execs, die er in Schleifen verpackt hatte auch außerhalb dieser ausreichend. Statt O(2^n) lief es dann mit O(n).

    Und, wenn ich einem Kollegen aus der Technik so zuhöre, beklagt der dasselbe bei überbezahlten Entwicklern auch. Die Programmieren mit ihren Frameworks auf Teufel komm raus und machen sich keine Gedanken, was das auf (s)einem Oracle-Cluster so alles tut. Ohne passende Indizes...


    Wer sich für das Thema Green-IT interessiert, hat das Problem zumindest verstanden. Der braucht dann aber das Feature zumeist auch nicht. Alles andere regeln checkmk, munin und Co. Wozu brauche ich Pseudoeinheiten, wenn ich Effizienz auch in Usern/CPU-Zyklus bemessen kann?