FreeBSD PowerMon Funktion mit nur Ausgabe auf stdout?

Bohnenhans

Commander
Registriert
Okt. 2022
Beiträge
2.441
Hallo wegen "Energieoptimerung" aus Spass würde ich gerne mal CPU Wattage mitloggen (für das Gesamtsystem mache ich das bereits)

PowerMon zeigt das an - aber eben nur als ncurses "live Programm" und hat auch keine "fire => output stdout => exit" Funktion

Gibt es sowas in FreeBSD oder muss man dazu halt den powermon code "umpfuschen" :D


------------------------------

Habs mit kurz selber eingebaut - trotzdem wäre interessant zu wissen gibt es sowas out of the box dass man das auch script etc auswerten kann?
 
Zuletzt bearbeitet:
Nein, Powermon verwendet zwar Ncurses hat aber kein Stdout, somit ist der Abruf der Daten nicht möglich.
Wenn du bereits das gesamte System im Verbrauch mitloggst, wieso noch extra die CPU? Zahlst du da einen anderen Tarif? :lol:
Ich würde aber dem Ergebnis nicht 100% vertrauen, denn Powermon produziert auch Mist, wird das Ding überhaupt noch weiterentwickelt? Ich kenne nur die 1.0 Version und damals hat die nur noch ports erhalten...
 
Nö aber mich würde halt interessieren ob es prinzipiell interessant wäre auf eine "L" Variante umzustellen oder wie sich SW-CPU Einschänkungen in Takt Turbo usw auswirken.

Powermon liest ja wie ich gesehen habe die Werte nach Intel Spezifikation über das Kernel Modul "cpuctl" aus - die Werte sind halt so genau wie Intel die nach aussen freigibt - denke das reicht schon.

Egal ich hab's jetzt mal im Monitoring :D interessiert mich halt der Verbrauch
 
Zuletzt bearbeitet:
b1nb4sh schrieb:
Powermon verwendet zwar Ncurses hat aber kein Stdout, somit ist der Abruf der Daten nicht möglich.
Ja. Nichtsdestotrotz kann man ja powermon so patchen, das es einfach nach stdout schreibt statt über ncurses. Das ist ja auch, was er meinte. Das wäre natürlich möglich. Also auch mit überschaubaren Aufwand (das Programm selbst ist ja auch nicht sehr groß)

b1nb4sh schrieb:
Ich würde aber dem Ergebnis nicht 100% vertrauen, denn Powermon produziert auch Mist, wird das Ding überhaupt noch weiterentwickelt?
Also ja. Leistungsaufnahmemessung sind (insbesondere unter FreeBSD) nicht ganz trivial. :-)
Weiter entwickelt wird das Programm nicht mehr und ob sich da in absehbarer Zeit jemand drum kümmert, wage ich mal zu bezweifeln.
Und ja. Die Entwicklung geht weiter. Neuere CPUs haben teilweise auch andere Funktionen/Schnittstellen usw. Und bei AMD-CPUs funktioniert powermon beispielsweise gar nicht, da Intel-spezifischer Kram benutzt wird.
 
Habe ich ja auch dann gemacht und hat glaub 10 Min gedauert - aber dachte halt najo vielleicht hat es ja schon jemand oder kennt eine Alternative.

Das Programm greift doch nur auf das Kernelmodul zu und liest dort die Werte ,die das Kernemodul selber nach Intel Vorgaben ausliest - wirklich gross weiterentwickeln muss man da halt nicht mehr.

Solange sich die Kernelschnittstelle etc nicht ändert kann man das halt eigentlich nicht mehr verbessern.

Die Verbrauchsinfo der CPU selber ist ja auch nict superwichtig für mich - aber ich will sie halt trotzdem haben :D das halt das wo ich halt noch evtl einfach optimieren kann.
 
Zuletzt bearbeitet:
andy_m4 schrieb:
Ja. Nichtsdestotrotz kann man ja powermon so patchen, das es einfach nach stdout schreibt statt über ncurses. Das ist ja auch, was er meinte. Das wäre natürlich möglich. Also auch mit überschaubaren Aufwand (das Programm selbst ist ja auch nicht sehr groß)
Wenn man diesen Lösungsansatz hernimmt, geht das bei jedem Programm solange der Code offen vorliegt.
Deswegen habe ich auch geschrieben, dass es ncurses nutzt aber kein Stdout verwendet, wenn er es selber patcht, wieso nicht?
 
Zuletzt bearbeitet:
Jupp aber kennst ja sobald man ein neues System installiert oder das alte wieder neu aufsetzt muss man halt dann wieder nachschauen auf welchem Rechner hat man das geändert und kompiliert und/oder erst die ganzen (minimale) Dev Umgebung nachinstallieren usw.

Daher ist meine erste Wahl halt immer was "out of the box".

Und erst dann wenn es das nicht gibt kann man immer noch im Code rumwerkeln.
 
Bohnenhans schrieb:
Naja das Programm greift doch nur auf das Kernelmodul zu und liest dort die Werte aus
Wenn es auf ein Kernelmodul aka Treiber zugreifen würde, wäre das ja ja schön. Dann hätte man nämlich eine abstrahierte Schnittstelle und gerade keine enge Abhängigkeit von der Hardware.

So aber wird die CPU-Funktionalität direkt angesprochen. Das kann man machen und es funktioniert ja auch. Aber wirklich schön ist das natürlich nicht.

Bohnenhans schrieb:
Solange sich die Kernelschnittstelle etc nicht ändert kann man das halt nicht mehr verbessern.
Das ist auch so ein Punkt. Wenn sich eine Kernelschnittstelle ändert, reicht es i.d.R. das Programm neu zu kompilieren. Also zumindest für den ABI-Teil. Die API selbst ändert sich bei FreeBSD so gut wie nie. Kann höchstens mal sein, das was rausfliegt.
 
Für Intel X86 werden sich die Register denke ich nicht mehr ändern - und das halt erst mal die Plattform die ich nutze, wenn ich die mal verlasse bei den Servern muss ich halt wieder schauen - denke AMD wird sicher auch irgendwelche Möglichkeiten haben.
 
Bohnenhans schrieb:
Für Intel X86 werden sich die Register denke ich nicht mehr ändern
Schwer zu sagen. Gerade bei den Power-Management-Geschichten gabs ja immer mal Änderungen. Und umso interner irgendwelche Dinge sind, umso niedriger ist dann ja auch die Hemmschwelle etwas zu ändern.

Ist aber ja auch nicht schlimm. Weil für hier und jetzt funktioniert es und da hängt ja nix Dramatisches dran, so das es kein Problem wäre, wenns bei Folge-CPUs nicht mehr funktionieren würde.
 
  • Gefällt mir
Reaktionen: Bohnenhans
Ja das stimmt ganz sicher kann man sich nie sein.

aber das macht es dann vielleicht in ein paar Jahren wieder interessant wie es da dann machbar ist.
 
Bohnenhans schrieb:
aber das macht es dann vielleicht in ein paar Jahren wieder interessant wie es da dann machbar ist.
Das stimmt natürlich. I.d.R. hat man auch so weit Glück, das es so einigermaßen dokumentiert ist bzw. Intel teilweise sogar selbst Open-Source-Kram dazu rausbringt, worauf man zurückgreifen kann.
 
Nun isses alles drin :D hihi un dich finde das war dann der Aufwand wert ..... so viel war es dann doch nicht

Glaub aber ne "L" CPU lohnt nicht die CPU Core Power ist bei so 3-4 Watt im idle der Rest ist "UnCore" Verbrauch, der wäre identisch vermutlich.

Das Uncore ist doch so Krams wie Speicher und PCIE-Signal-Lanes usw denke ich? - davon ist vieles wohl klassische "Northbridge" und da bringt dann sparen im (Idle) Core nichts mehr.

Aber manchmal ist es auch snnvoll zu wissen wo sich optimeren dann nicht mehr lohnt.
 

Anhänge

  • serverpower.jpg
    serverpower.jpg
    148,8 KB · Aufrufe: 86
Zuletzt bearbeitet:
Ah ok. Wie ich sehe, hast Du das da hübsch in die Überssichtsseite eingebaut. Ja prima.

Bohnenhans schrieb:
Das Uncore ist doch so Krams wie Speicher und PCIE-Signal-Lanes usw denke ich? - davon ist vieles wohl klassische "Northbridge" und da bringt dann sparen im (Idle) Core nichts mehr.
Ja.
Man kann hier und da noch ein bisschen was sparen.
Für Linux gibts ja dasTool PowerTop, was ja auch Hinweise gibt. Ob man das auf FreeBSD zum laufen kriegt, würde ich jetzt erst mal stark bezweifeln.
Aber zum Thema Energieverbrauch/Optimierung gibts ja auch ne Wiki-Seite, die Du vermutlich schon kennen wirst:
https://wiki.freebsd.org/TuningPowerConsumption
 
Hmm ja aber diese Optimierungen betreffen doch leider nur den "Core" oder?


95% der Zeit der normalen Servernutzung ist das Verhältnis 3-4W Core und 20W UnCore bei meinem System - denke vielleicht auch wegen des Alters des Systems.

An den 3-4W der Cores lohnt sich dann optimieren kaum mehr.

Bei CPU Auslastung gehen die Cores dann auf 40W hoch UnCore bleibt bei ~ 20 - also 61W - nur die max. CPU Belastung erreiche ich aber nur manuell (per stress command) und nicht im Betrieb - im Betrieb idelt die CPU eigentlich nur.

Glaub PowerTop etc lohnt nur wenn man nach oben begrenzen will - denke nach unten bleibt eher nur undervolt etc.
 
Zuletzt bearbeitet:
Bohnenhans schrieb:
Hmm ja aber diese Optimierungen betreffen doch leider nur den "Core" oder?
PowerTop hat als von Intel initiiertes Tool natürlich schon einen Schwerpunkt bei CPU, aber behandelt auch den Rest.
Wieviel sich da raus holen lässt, kommt im Zweifel auf den Versuch an.

Bohnenhans schrieb:
An den 3-4W der Cores lohnt sich dann optimieren kaum mehr.
Ja. Das würde ich genauso sehen.
Und auch beim Rest wird es jetzt nicht so sein, das Du das Halbieren kannst oder so. Wie gesagt. Die verlinkte Wiki-Seite gibt ja ein paar Hinweise zu dem, was man noch probieren könnte.
 
  • Gefällt mir
Reaktionen: Bohnenhans
Ja habe ich mir schon durchgeschautr - Danke.

Schade eigentlich dass da nicht mehr geht xD aber naja die Server laufen bei uns ja eh nicht 24/7 - das ist dann sowieso die beste Optimierung :D
 
:-)
Ja. Ich denke auch, das im ausgeschalteten Zustand man selbst mit dem besten Tool nicht noch mehr rausholen kann.
Schön, wenn sich Experten auch mal einig sind. :-)
 
Zurück
Oben