Gibt es einen Befehl, den ich über die Befehlszeile in OS X ausführen kann, um die aktuelle CPU-Temperatur und/oder die Lüftergeschwindigkeit(en) abzurufen?
Genauer gesagt möchte ich in der Lage sein, dieselben Informationen im iStat-Widget unter den Registerkarten „Lüfter“ und „Temps“ in der Befehlszeile verfügbar zu machen.
Ich würde diese Werte gerne in der Befehlszeile finden, damit sie per Skript erstellt und in ein Überwachungssetup auf meinem Mac eingesteckt werden können. Ich habe den Wunsch eines Daten-Nerds, diese Werte (und andere Statistiken) auf meinem zu sammeln und grafisch darzustellen MacBook im Laufe der Zeit.
Unter Linux scheint dies möglich zu sein, indem eine Pseudodatei unter dem /proc
Verzeichnis gelesen wird, aber ich bin mir nicht sicher, wie ich das Äquivalent unter OS X machen soll (falls vorhanden).
Option Nr. 1) können Sie in Betracht ziehen, eingebaute Utility-Powermetrics zu verwenden, um die CPU- und GPU-Temperatur und viele weitere Details zu erhalten.
So erhalten Sie die CPU-Temperatur:
sudo powermetrics --samplers smc |grep -i "CPU die temperature"
So erhalten Sie die GPU-Temperatur:
sudo powermetrics --samplers smc |grep -i "GPU die temperature"
Um viele weitere Details zu erhalten:
sudo powermetrics
Dies wurde auf einem Macbook Pro mit macOS Mojave getestet.
Option #2) Installieren Sie das offiziell von Intel bereitgestellte Intel® Power Gadget von hier aus
Intel® Power Gadget und starten Sie dann Intel Power Gadget über das Launchpad.
Ergebnisbildschirm:
sudo powermetrics --samplers smc -i1 -n1
, um eine einzelne sofortige Stichprobe von SMC-Sensormesswerten zu erhalten, einschließlich CPU- und GPU-Temperatur und Lüftergeschwindigkeit.unrecognized sampler: smc
sudo powermetrics
funktioniert auf m1? Wenn dies der Fall ist, können Sie eine andere Möglichkeit finden, die Sensorablesung auf 1 zu begrenzen.Mit dem iStats Ruby Gem können Sie die CPU-Temperatur über die Befehlszeile anzeigen.
$ gem install iStats
$ istats all
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install iStats
watch -n0 istats
(Ich musste brew install watch
auf OSX, bevor ich das Obige tat) Siehe: superuser.com/q/361902watch --color istats
.istats
Befehl von jedem Pfad aus ausführen können.sudo
. Verwenden Sie stattdessengem install --user-install iStats
gem install --user-install iStats
, aber wenn ich versuche, es auszuführen istats
, wird die Meldung "Befehl nicht gefunden" angezeigt./usr/local/bin
Teil von dir $PATH
?istats
Befehl jetzt sehr regelmäßig verwende. Aber heute habe ich entdeckt istats scan
, was noch viel mehr Lesestoff bietet. Danke für dieses tolle Schmuckstück!Auf BSD-Systemen kann das sysctl
Dienstprogramm ähnliche Informationen bereitstellen wie der /proc
Baum in Linux. Es meldet tatsächlich einige CPU/GPU-Temperaturinformationen von Xnu CPU Power Management (XCPM):
sysctl machdep.xcpm.cpu_thermal_level
sysctl machdep.xcpm.gpu_thermal_level
Dies scheint jedoch kein Temperaturmesswert zu sein, sondern nur ein Hinweis auf das Temperaturniveau im Vergleich zu einer Referenz.
machdep.xcpm.cpu_thermal_level: 0
und machdep.xcpm.gpu_thermal_level: 0
auf Macos 10.12machdep.xcpm.cpu_thermal_level: 58
)powermetrics
zeigt auch einige "thermische Werte" als 0 an, zeigt aber zufällig auch die CPU/GPU-Die-Temperaturen an, was mir (und ich stelle mir alle anderen vor) eigentlich wichtig ist. Siehe Satishs Antwort und @rjmunros Kommentar.powermetrics
Kommando?Dieses Open-Source-Befehlszeilendienstprogramm hat bei mir funktioniert: https://github.com/lavoiesl/osx-cpu-temp .
brew install osx-cpu-temp
0.0°C
zu mac studio (arm)Update: @PressingOnAlways hat mich darüber informiert, dass diese Software nun von ihrem Entwickler als Legacy betrachtet wird. Weitere Details zum eingestellten Support finden Sie auf der Legacy-Software-Website .
Installieren Sie Temperature Monitor und führen Sie Folgendes aus, vorausgesetzt, Sie haben es in installiert /Applications
:/Applications/TemperatureMonitor.app/Contents/MacOS/tempmonitor -c -l -a
Sie können auch den aktualisierten (jedoch nicht mehr in Entwicklung befindlichen, aber herunterladbaren) Hardware Monitor vom gleichen Autor verwenden:/Applications/to/HardwareMonitor.app/Contents/MacOS/hwmonitor
tempmonitor
auf Homebrew gäbetempmonitor
zeigt keine Lüfterdrehzahl an/path/to/HardwareMonitor.app/Contents/MacOS/hwmonitor
im Terminal
ausführenDer SMC-Sampler ist auf dem M1 (oder auf Big Sur, nicht sicher, welcher) nicht verfügbar. Sie können Frequenzen und Stromverbrauch für CPU und GPU mit Powermetrics erhalten, aber nicht die Temperatur, soweit ich das beurteilen kann.
Die Temperatur kann wahrscheinlich immer noch vom SMC abgelesen werden, aber es sieht so aus, als hätten sich die Tasten für das M1 geändert und könnten sogar zwischen den M1-Modellen unterschiedlich sein.
OS X bietet diese Funktionalität nicht. smcFanControl und die iStat-Widgets sind die typische Anlaufstelle für dieses Problem. Ich persönlich benutze smcFanControl. Es gibt mir sowohl die Temperatur als auch die Möglichkeit, den Lüfterbetrieb zu überwachen.
Es gibt zwei Möglichkeiten, Ihre CPU-Statistiken anzuzeigen. Wenn Sie keine zusätzliche Software installieren möchten, können Sie viele Details über das Terminal / die Befehlszeile anzeigen.
1 #
am Terminal eingeben...
sudo powermetrics
und ganz unten sieht man folgendes...
**** SMC sensors ****
CPU Thermal level: 51
GPU Thermal level: 35
IO Thermal level: 1
Fan: 2060 rpm
CPU die temperature: 88.36 C (fan)
GPU die temperature: 74.38 C
CPU Plimit: 0.00
GPU Plimit (Int): 0.00
GPU2 Plimit (Ext1): 0.00
oder #2
oder versuchen Sie es mit der Eingabe .. (aber Apple hat vielleicht die Details daraus auf nur die Zahlen 0 oder 1 entfernt?)
sysctl -a | grep cpu | more
oder nur thermische / Temperaturdetails?
sysctl -a | grep thermal
die ausgabe sollte so aussehen...
hw.ncpu: 8
hw.activecpu: 8
hw.physicalcpu: 4
hw.physicalcpu_max: 4
hw.logicalcpu: 8
hw.logicalcpu_max: 8
hw.cputype: 7
hw.cpusubtype: 8
hw.cpu64bit_capable: 1
hw.cpufamily: 280134364
hw.cpufrequency: 2800000000
hw.cpufrequency_min: 2800000000
hw.cpufrequency_max: 2800000000
hw.cputhreadtype: 1
machdep.cpu.max_basic: 13
machdep.cpu.max_ext: 2147483656
machdep.cpu.vendor: GenuineIntel
machdep.cpu.brand_string: Intel(R) Core(TM) i7-4980HQ CPU @ 2.80GHz
machdep.cpu.family: 6
machdep.cpu.model: 70
machdep.cpu.extmodel: 4
machdep.cpu.extfamily: 0
machdep.cpu.stepping: 1
machdep.cpu.feature_bits: 9221960xxxxxx657855
machdep.cpu.leaf7_feature_bits: 10155 0
machdep.cpu.leaf7_feature_bits_edx: 261xxxxxx2
machdep.cpu.extfeature_bits: 1424xxxxxx52
machdep.cpu.signature: 263777
machdep.cpu.brand: 0
machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX SMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C
machdep.cpu.leaf7_features: RDWRFSGS TSC_THREAD_OFFSET BMI1 AVX2 SMEP BMI2 ERMS INVPCID FPU_CSDS MDCLEAR IBRS STIBP L1DF SSBD
machdep.cpu.extfeatures: SYSCALL XD 1GBPAGE EM64T LAHF LZCNT RDTSCP TSCI
machdep.cpu.logical_per_package: 16
machdep.cpu.cores_per_package: 8
machdep.cpu.microcode_version: 28
machdep.cpu.processor_flag: 5
machdep.cpu.mwait.linesize_min: 64
machdep.cpu.mwait.linesize_max: 64
machdep.cpu.mwait.extensions: 3
machdep.cpu.mwait.sub_Cstates: 270624
machdep.cpu.thermal.sensor: 1
machdep.cpu.thermal.dynamic_acceleration: 1
machdep.cpu.thermal.invariant_APIC_timer: 1
machdep.cpu.thermal.thresholds: 2
machdep.cpu.thermal.ACNT_MCNT: 1
machdep.cpu.thermal.core_power_limits: 1
machdep.cpu.thermal.fine_grain_clock_mod: 1
machdep.cpu.thermal.package_thermal_intr: 1
machdep.cpu.thermal.hardware_feedback: 0
machdep.cpu.thermal.energy_policy: 1
machdep.cpu.xsave.extended_state: 7 832 832 0
machdep.cpu.xsave.extended_state1: 1 0 0 0
machdep.cpu.arch_perf.version: 3
machdep.cpu.arch_perf.number: 4
machdep.cpu.arch_perf.width: 48
machdep.cpu.arch_perf.events_number: 7
machdep.cpu.arch_perf.events: 0
machdep.cpu.arch_perf.fixed_number: 3
machdep.cpu.arch_perf.fixed_width: 48
machdep.cpu.cache.linesize: 64
machdep.cpu.cache.L2_associativity: 8
machdep.cpu.cache.size: 256
machdep.cpu.tlb.inst.large: 8
machdep.cpu.tlb.data.small: 64
machdep.cpu.tlb.data.small_level1: 64
machdep.cpu.tlb.shared: 1024
machdep.cpu.address_bits.physical: 39
machdep.cpu.address_bits.virtual: 48
machdep.cpu.core_count: 4
machdep.cpu.thread_count: 8
machdep.cpu.tsc_ccc.numerator: 0
machdep.cpu.tsc_ccc.denominator: 0
machdep.xcpm.cpu_thermal_level: 0
Sie werden die Frequenzdetails und auch einige thermische Informationen bemerken ... Sie können auch "grep thermal" verwenden, wenn Sie nur daran interessiert sind ...
:)
Bei mir funktioniert das Tool osx-cpu-temp
einwandfrei! (Danke) Ich habe ein kleines Skript erstellt, um den Wert jede Sekunde zu aktivieren und die Ausgabe zu verschönern (es wird toilet
für die hübsche Ausgabe verwendet):
while true; do; clear; osx-cpu-temp | toilet -f smblock; sleep 1; done;
Mit ITerm2 habe ich ein Profil erstellt, das diesen Befehl direkt nach der Anmeldung startet. ITerm2 kann auch eine Fensteranordnung speichern, also habe ich eine mit gespeichert tty-clock
, htop
und mein Befehl (mit dem Namen cpu-temp
) hat die Größe einer Statusleiste mit sehr kleiner Schrift.
Ich habe versucht, Option 1 aus Satishs Antwort zu verbessern , um Informationen zu den SMC-Sensoren anzuzeigen:
sudo powermetrics | sed -n '/\*\*\*\* SMC sensors \*\*\*\*/,/Number of prochots/p'
Ich bin mir nicht sicher, ob dies ohne externe Tools möglich ist, aber wenn Sie nach etwas Kleinem/Leichtem (und Open Source) suchen, empfehle ich Stats .
Es enthält ein Befehlszeilentool, auf /Applications/Stats.app/Contents/Resources/smc
das der Einfachheit halber symbolisch verlinkt werden kann /usr/local/bin
.
Um zB alle Temps/Sensoren aufzulisten:
smc list -t
Die smc-Werte für Temperatursensoren sind über ObjectiveC mit schnellen Bindungen zugänglich, und mehrere Python-Bibliotheken und -Pakete nutzen dies, um das Abrufen von Werten zu vereinfachen.
https://github.com/nicolargo/glances
Dieser auf Python hat Auto-Update && Farben eingebaut und kann mit einem einfachen curl- oder wget-Befehl installiert werden, wenn die Anforderungen bereits erfüllt sind.
Anforderungen
Auf meinem MacMini Mitte 2011 mit OSX 10.13.6 verwende ich smc
zum Einstellen und Überprüfen der Lüftergeschwindigkeit sowie osx-cpu-temp
der Temperatur.
Ein weiteres neues CLI-Tool, das dies sehr gut macht, ist iSMC: https://github.com/dkorunic/iSMC
Hier ist ein Screenshot von einigen der Ausgaben:
Es zeigt keine eGPU-Temperatur an, aber diese Informationen sind ioreg
irgendwo vorhanden. Sie können damit einige Statistiken über Ihre GPU/eGPU manuell aus ioreg extrahieren:
ioreg -l | grep '"PerformanceStatistics"' | sed -E "s/,/\\n/g;s/\"//g" | grep -E "(temp|power|Device Utilization|Fan|speed|GPU Activity)"
Wenn Sie mehrere GPUs haben, werden ihre Statistiken gemischt. Ich wähle nur meine Vega 56 eGPU wie folgt aus:
ioreg -c AMDRadeonX5000_AMDVega10GraphicsAccelerator -r -l | grep '"PerformanceStatistics"' | sed -E "s/,/\\n/g;s/\"//g" | grep -E "(temp|power|Device Utilization|Fan|speed|GPU Activity)"
...
Device Utilization %=7
Fan Speed(%)=0
GPU Activity(%)=16
Fan Speed(RPM)=0
Temperature(C)=36
Total Power(W)=35
Arc676
Seelenglanz
Zwieback
Top-Master
benwiggy