Wie kann ich unter OS X aktuelle Informationen zur Leistung abrufen?


21

Gibt es eine Möglichkeit, die aktuellen Wattverbrauchsdaten unter OS X Snow Leopard abzurufen? Ich verwende iMac Mitte 2010 und suche daher nicht nur nach batteriebezogenen Apps.

Überwacht OS X überhaupt den Stromverbrauch? Muss ich ein externes Lesegerät zwischen dem Netzkabel und der Steckdose verwenden?

Ich bin am meisten an Kommandozeilen- / AppleScript-basierten Lösungen für komfortablere Protokollierung und Statistiken interessiert, aber ich bin offen für Alternativen.


Beide Antworten (@ bmikes & @ michaelmichaels ) sind zweifellos richtig. Die Meta-Frage hier war, dass sich bereits Sensoren / Lesegeräte auf dem Netzteil befinden, die so funktionieren würden wie "Kill-a-Watt". Ich spüre, dass die Antwort "nein" ist.

Ich weiß, es ist wahrscheinlich nur ein feuchter Traum, aber ein Wattmeter an Bord wäre ideal, damit der Computer schreit: "Schau, wie umweltfreundlich ich bin, wenn ich nur diese Watt verwende!"


Ah!

@ Kerri Shotts 'vorgeschlagen iStat Menus 3 do die Leistung Lesungen Suche von einigem Sensor , zusammen mit Volt und Ampere Statistiken. Die Zähler sind also da, aber wie kann ich programmgesteuert darauf zugreifen?


Kopfgeld! Wird für feste Befehlszeilenlesesensor - Lösung gegeben werden oder für die außergewöhnlich gute Empfehlung 3 rd Party - Software (wie ein mit statistischen und historischen Daten Werkzeugen Minimum).

Zur Information: In den oben genannten iStat-Menüs 3 sind die folgenden leistungsbezogenen Sensoren aufgeführt:

  • Spannungssensoren (Volt)
    • AC / DC
    • AC / DC
    • AC / DC-Shunt
    • Zentralprozessor
    • CPU 1.8V S0
    • CPU CTT
    • Grafikmodul
    • Erinnerung
  • Stromsensoren (Ampere)
    • AC / DC
    • Zentralprozessor
    • CPU VTT
    • Grafikmodul
  • Leistungssensoren (Watt)
    • AC / DC
    • Zentralprozessor
    • Grafikmodul

Es gibt "Sensoren" an, diese können jedoch als @msanford-Kommentar berechnet werden. Wie kann ich programmgesteuert auf diese Daten zugreifen?


Macs sind sehr umweltfreundlich und das Testen eines Geräts wird von Apple sowie von Labors mit kalibrierten Prüfständen durchgeführt. Glücklicherweise können wir die Einstellungen verwenden, um die Macs, die wir haben, zu maximieren, während sie morgen effizientere Modelle entwickeln.
bmike

1
Meldet das Netzteil nicht die aktuelle Last (da ich ziemlich sicher bin, dass es die Spannung meldet)? Wenn ja, P = IV oder Watt = Strom (in Ampere) • Spannung (in Volt). Die Leistung wird nicht direkt gemessen, sondern aus Strom und Spannung berechnet. Daher würde ich nicht erwarten, dass ein Sensor Watt meldet, wenn bereits Meldungen zu Spannung und Strom vorliegen. Wenn das hilft ...
msanford

@msanford es könnte helfen - wenn uns jemand sagt, wie man die Messwerte vom Netzteil liest.
Jari Keinänen

Antworten:


21

system_profiler SPPowerDataTypescheint die relevantesten Informationen zu liefern. Auf Laptops werden Spannung und Stromstärke angezeigt, die den Stromverbrauch angeben können (mVolt × mAmperes × 10 ^ -6 = Watt). Es gibt auch Wattage an, aber das ist tatsächlich ein Teil der Metadaten, die von Apples Netzteil gemeldet werden. Netzteile von Drittanbietern können hier Leerzeichen anzeigen. Da Desktops nicht über wiederaufladbare Batterien verfügen, kann der Stromverbrauch nicht durch Messen des Lade- und Entladevorgangs von Batterien berechnet werden.

Aber warte, es gibt noch Hoffnung! Apple veröffentlicht viel Quellcode, und die Suche nach Wattage oder Power + mV deutet darauf hin, dass bestimmte Kernel-Erweiterungen nach dem Stromverbrauch abgefragt werden können. Leider kann ich momentan kein funktionierendes Skript entwickeln, aber es scheint möglich.


1
Ich sehe, es ist die Befehlszeilenschnittstelle für die System Profiler.app. Leider werden auf Desktops nur die Einstellungen von EnergySaver.prefpaneund angezeigt, wenn eine USV installiert ist.
Jari Keinänen

Auf meinem rMBP 2015 15 "sind Stromstärke und Spannung aus dem Abschnitt Batterieinformationen mehr oder weniger konstant, zumindest verglichen mit dem Wert" Gesamtsystem "von iStat, der jede Sekunde aktualisiert wird. Außerdem habe ich gemerkt, dass Stromstärke ist 0.
Johannes Bittner,

Lieben Sie dieses; kurz und einfach. Nichts zum Herunterladen oder Installieren. Wenn Leute interessiert sind, könnte ich (oder jemand anderes) leicht ein Skript / einen Befehl erstellen, um die erforderlichen Felder aus diesem Befehl zu ziehen und die tatsächlich verwendete Wattzahl auszuspucken.
Rinogo

Update: Der angegebene Befehl hat bei mir funktioniert, als ich ihn zum ersten Mal brauchte, aber als ich ihn wieder brauchte, hat er nicht funktioniert. Es zeigt seltsame Werte für die Stromstärke an. Vielleicht suche ich einfach nicht am richtigen Ort. Wer weiß ... ymmv.
Rinogo

11

Dies entspricht nicht den Befehlszeilenanforderungen, probieren Sie jedoch iStat Menus 3 aus . Es gibt Ihnen Messwerte für fast jeden Sensor in Ihrem Gerät (der für mich AC / DC-Watt, CPU-Watt und GPU-Watt enthält). Ich bin mir sicher, dass es nicht 100% genau ist, aber es war mehr als genau genug, um mein Gerät so einzustellen, dass es innerhalb der begrenzten Einschränkungen meiner APC-Batterie funktioniert.

Alles in allem handelt es sich bei meiner Maschine um einen 2010 iMac. Abhängig von Ihrer Maschine funktioniert der iMac möglicherweise oder auch nicht. Darüber hinaus sehe ich keine Leistungsangaben speziell für die Festplatte (die minimal sein sollten) oder etwas spezielles für das Display (das heißt, die Verringerung der LCD-Helligkeit verringert die Leistung ziemlich stark, so dass es insgesamt gezählt wird).

Zumindest einen Versuch wert. IIRC gibt es eine kostenlose Version, aber es war es so wert, dass ich weitermachte und dafür bezahlte. Ich bin ein bisschen ein Kontrollfreak, also habe ich Speicher, Temperatur, Festplattenaktivität, Netzwerkaktivität usw. in meiner Menüleiste und liebe es. :-)


2
In perfekter Vollendung! Nun stellt sich die Frage: Wie erhält iStat Menus die Sensorwerte?
Jari Keinänen,

8

Es gibt eine kostenpflichtige Anwendung namens Hardware Monitor, die Zugriff auf so ziemlich jeden Sensor auf einem Mac bietet, einschließlich Spannung, Strom und Leistung, die Sie meiner Meinung nach suchen. Es enthält ein Befehlszeilenprogramm zum Lesen dieser Informationen.

Ich habe das letztes Jahr genutzt, um ein fehlerhaftes Logicboard in einem iMac aufzuspüren und fand, dass es die 7 Euro wert ist. Es beinhaltet die Möglichkeit, die Sensorwerte an eine CSV auszugeben, was für die Protokollierung und visuelle Anzeige der Daten hilfreich sein kann. Ich bin mir nicht sicher, ob es PSU-Werte liefert (da ich die App nicht auf dem Computer habe, auf dem ich mich gerade befinde), aber es trifft PCI, Slots, CPU und viele andere.

Sie finden die Software hier: http://www.bresink.com/osx/HardwareMonitor.html

Ich bin überhaupt nicht mit diesem Unternehmen verbunden, fand das Tool nur sehr nützlich in meinem Diagnose-Arsenal.


Lyken gewinnt den Preis mit dieser Antwort. Was für ein erstaunliches Stück Software. Befehlszeilen-Tool, Menüleiste und vollständige App. Wenn das Netzteil selbst nicht auf neuen Macs überwacht wird, gibt es keine Gesamtleistung an, aber dies macht einen großartigen Job, wenn auf alle verfügbaren Daten zugegriffen wird.
bmike

Entschuldigen Sie das späte Update, aber @Lyken, Ihre +100 ist wohl verdient: Ich habe gezögert, die volle +200 zu geben, da der Hardware-Monitor die Leistung des Netzteils anscheinend nicht so gut wie iStat Menus 3 liefert. Aus irgendeinem Grund listet das HWM Leistungssensoren nur für CPU A, 4 CPU High Sides und MXM Graphics Module. Eine großartige App, und ich hätte Ihre Antwort im Handumdrehen zuerkannt, wenn eine andere Kopfgeldantwort die Regeln für die automatische Vergabe von Halbkopfgeldern erfüllt hätte . Wie gesagt, +100 verdient.
Jari Keinänen

Ja, ich glaube, dass HWM die Sensoren modellspezifisch ausliest. Dies hängt also davon ab, was in Ihrer Version verfügbar ist. Hat iStat Menu 3 auch die Leistung des Netzteils Ihres Modells gelesen?
Digitalchild,

1
Leider hat Hardware Monitor am 19. Juni 2017 EOL
walterra

7

IANAEE (ich bin kein Elektrotechniker), aber meines Wissens ist es nicht möglich, den Stromverbrauch eines Computers über Software genau zu messen. Die beste Lösung ist, Ihren Mac an ein Gerät wie ein Kill-a-Watt anzuschließen

Wenn Sie nach einer skriptfähigen Lösung und einem interessanten Projekt suchen, finden Sie hier Anweisungen zum Erstellen eines drahtlosen Leistungsüberwachungssystems oder eines " Tweet-a-Watt ".


7

Alle Daten in iStat stammen nur von Schlüsseln in der ioregistry. Sie können einen Speicherauszug mit ioreg von der Befehlszeile abrufen:

ioreg -w 0 -l

Das wird eine Menge Daten sein, die Sie durchsuchen müssen. Sie können sie auf verschiedene Arten aufschlüsseln. Ich glaube nicht, dass die von Ihnen gewünschten Daten auf dem iMac bereitgestellt werden. Das System überwacht die Temperatur an mehreren Stellen. Da es jedoch nicht mit einer Batterie betrieben wird, ist es weniger wichtig, den momentanen Strom zu kennen, der vom System bezogen wird wahrscheinlich nicht die Kosten eines Sensors wert.


5

In der Spannungsversorgung sind keine gemessenen Sensoren vorhanden.

Die Hauptplatine misst die Temperatur an mehreren Stellen, um die Lüfter zu steuern, und die CPU überwacht die Temperatur, um die Taktrate zu verringern, wenn sie wärmer wird, als die Lüfter sie kühlen können.

Ich nehme an, dass eine Doktorarbeit über die Integration der Lüfterdrehzahl und verschiedener Temperatursensoren durchgeführt werden könnte, um den erwarteten Stromverbrauch zu berechnen. Es ist möglich, eine Berechnung zu erhalten, und mit einer gewissen Kalibrierung ist sie möglicherweise sogar ziemlich genau.

Da diese Daten in Wirklichkeit nicht offengelegt oder aufgezeichnet werden, müssen Sie sie möglicherweise extern messen. Anständige Haushaltsenergiezähler kosten zwischen 150 und 300 US-Dollar

Sie können ein Gerät mieten oder kaufen, das die Leistung über die Steckdose misst, und dann einen Test durchführen, um festzustellen, wie viel Leistung der Mac unter bestimmten Bedingungen über eine Stunde benötigt.

  • aus
  • Schlafen
  • Leerlauf
  • Verschiedene CPU-Lasten
  • Maximale CPU, alles läuft

Dann könnten Sie diese mit der Überwachung der CPU-Auslastung korrelieren, die mit der Zeit trivial ist, topund in der Lage sein, Dinge zusammenzufassen.

Es hängt alles davon ab, was Sie wirklich mit den Daten machen wollen, außer zu lernen, wie die Hardware funktioniert, und ein paar coole Grafiken zu haben.


2
+ Sie müssen der Liste unendlich viele weitere Dinge hinzufügen . Wahrscheinlich würde ich, wenn ich alle Bedingungen kalibriert hatte, den aktuellen iMac ersetzen müssen :-D Vielleicht würden nur einige externe Basis-W & kWh-Zähler den Trick tun, wenn keine Zähler an Bord sind.
Jari Keinänen

2
:-) Ich bin froh, dass du den Humor hast. Ich habe die Erfahrung gemacht, dass die Macs 20 bis 25% weniger als die von Apple veröffentlichten Spezifikationen zeichnen, auch wenn sie strengen Tests unterzogen wurden, um alles mit maximaler Leistung zu zeichnen.
bmike

1
@bmike Ich würde nicht so sicher sein , dass wird die rMBP bekannt Batterie zu entladen , wenn sie ausreichend auf der GPU + CPU geladen aufgrund der 85W - Anpasseinrichtung unzureichend Strom.
Steven Lu

1
@stevenlu Ich wäre nicht überrascht, wenn die neueste Hardware der Ära 2013 härter drängt als die Technologie der Ära Mitte 2010, die hier diskutiert wird. Ebenso ist die Energieverwaltung in 10.8 komplexer als in 10.6. Auch - sie schöpfen stark aus dem internen Akku - nur nach meiner Erfahrung nicht so viel aus dem Netzteil. Sogar die neuen USB-C PD-Modelle folgen diesem Muster des starken internen Verbrauchs / gepufferten + leichteren externen Verbrauchs
bmike

3

Ich habe ein kleines Skript basierend auf der Ausgabe von system_profiler erstellt. Es berechnet die Leistung anhand der angegebenen Spannung und Ampere.

powerstat() {
    b=$(system_profiler SPPowerDataType)
    amp=$(echo "$b" | grep 'Amperage (mA):' | cut -d ':' -f 2 | xargs)
    volt=$(echo "$b" | grep 'Voltage (mV):' | cut -d ':' -f 2 | xargs)
    power=$(($amp * $volt / 1000))
    echo "$b" | grep --color=never -A 1 'Battery Information:'
    echo "$b" | grep --color=never -A 1 'Amperage (mA)'
    echo "      Total Power (mW): $power"
    echo ""
    echo "$b" | grep --color=never -A 99 'AC Charger Information:'
}

Gibt so etwas aus wie:

$ powerstat
    Battery Information:

      Amperage (mA): -552
      Voltage (mV): 12794
      Total Power (mW): -7062

    AC Charger Information:

      Connected: No
      Charging: No

Beim Laden:

$ powerstat
    Battery Information:

      Amperage (mA): 1545
      Voltage (mV): 12850
      Total Power (mW): 19853

    AC Charger Information:

      Connected: Yes
      Wattage (W): 60
      Charging: No

2
// Build with: gcc psudata.cc -o psudata -framework IOKit
#include <stdio.h>
#include <string.h>
#include <IOKit/IOKitLib.h>

typedef struct {
  uint32_t key;
  char ignored[24];
  uint32_t size;
  char ignored2[10];
  char cmd;
  char ignored3[5];
  float val;
  char ignored4[28];
} smc_t;

int main(void) {
  mach_port_t mp;
  CFMutableDictionaryRef d;
  io_iterator_t it;
  io_object_t svc;
  io_connect_t ioc;
  smc_t req, resp;
  size_t sz = sizeof(resp);
  uint32_t vk  = ('V' << 24) + ('D' << 16) + ('0' << 8) + 'R';
  uint32_t ik  = ('I' << 24) + ('D' << 16) + ('0' << 8) + 'R';
  float v, i;

  IOMasterPort(MACH_PORT_NULL, &mp);
  d = IOServiceMatching("AppleSMC");
  IOServiceGetMatchingServices(mp, d, &it);
  svc = IOIteratorNext(it);
  IOObjectRelease(it);
  IOServiceOpen(svc, mach_task_self(), 0, &ioc);
  IOObjectRelease(svc);
  memset(&req, 0, sizeof(smc_t));
  memset(&resp, 0, sizeof(smc_t));
  req.cmd = 5;
  req.size = 4;
  req.key = vk;
  IOConnectCallStructMethod(ioc, 2, &req, sizeof(req), &resp, &sz);
  v = resp.val;
  req.key = ik;
  IOConnectCallStructMethod(ioc, 2, &req, sizeof(req), &resp, &sz);
  i = resp.val;
  IOServiceClose(ioc);

  printf("%fV %fA %fW\n", v, i, v*i);
  return 0;
}

Eigentlich die falsche Frage beantwortet, sorry ... Ich bin hierher gekommen, weil ich nach der Ladespannung und dem Ladestrom eines USB-C-Ladegeräts gesucht habe ... und da ich sie nicht gefunden habe, habe ich das oben herausgefunden und gepostet hier. Aber es ist eigentlich nicht das, was du wolltest. Sie könnten wahrscheinlich die DC-Eingangsdaten (this) mit den Batteriedaten (other answers) kombinieren, um auf die Nutzungsdaten zu schließen.
Luyer

2
system_profiler SPPowerDataType | grep Wattage

Ist der Trick für mich auf MacBook Pro (15-Zoll, 2016)!


2
Hier wird die Leistung des Netzteils und nicht der aktuelle Stromverbrauch angezeigt. Zum Kontext:system_profiler SPPowerDataType | grep -C4 Wattage
Edward Anderson

2

Hier ist ein ioregBefehl, der die meisten Energieinformationen ohne 'grep' ausgibt. Es wird viel schneller als system_profiler auf meinem Computer zurückgegeben, daher ist es wahrscheinlich besser geeignet, um Skripte zu erstellen oder im Hintergrund auszuführen.

ioreg -w 0 -f -r -c AppleSmartBattery

1

Ich bin auf einem MacBook 10.6.8 und habe ioreg -l | grep LegacyBatteryInfofür mich gearbeitet.

Ich habe es zuvor versucht

ioreg -l | grep LegacyBatteryInfo | \
    cut -d '{' -f 2 | tr -d \} | tr ',' '=' | \
    awk -F'=' '{print ($2*$10/10^22)}' 

und es gab 0 zurück.

Gibt es eine Lösung aus Apples Entwicklerbibliothek?

Warum nicht mal auf den Leistungsmesser schauen? Notieren Sie Ihre Messwerte und korrelieren Sie dann mit einer konstanten und üblichen CPU-Auslastung in%. Dann können Sie eine Annäherung erhalten.


0

Ich denke, dass dies für 10.7 vom Terminal aus funktionieren sollte:

ioreg -l | grep LegacyBatteryInfo | cut -d '{' -f 2 | tr -d \} | tr ',' '=' | awk -F'=' '{print ($2*$10/10^22)}'


2
ioreg -l | grep LegacyBatteryInfogibt auf iMac nichts für mich zurück.
Jari Keinänen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.