So aktivieren Sie Schutzmaßnahmen für die CPU-Temperatur


9

Mein Desktop hat eine böse Angewohnheit. Wenn mehrere Anwendungen mit hoher Intensität ausgeführt werden und meine CPU für einen bestimmten Zeitraum maximal ausgelastet ist, steigt die Kerntemperatur und mein Computer schaltet sich automatisch aus.

Gibt es eine Möglichkeit, meine CPU-Temperatur im Hintergrund zu überwachen (ein Skript zu schreiben) und eine Warnung zu erhalten, wenn sie eine bestimmte Temperatur überschreitet?

Ich führe Opensuse mit dwm als Fenstermanager aus. Normalerweise sensorssehe ich meine CPU-Temperatur.


1
Unter Linux oder anderen Unix-Varianten? Die Methode, um die Temperatur zu erhalten oder über Temperaturänderungen informiert zu werden, unterscheidet sich zwischen Unix-Varianten.
Gilles 'SO - hör auf böse zu sein'

Mein schlechtes @ Gilles, ich fügte meiner Frage Informationen hinzu
n0pe

Nachdem Sie diesen Temperaturanstieg gesehen haben, sollten Sie Ihre CPU drosseln.
Nils

Antworten:


5

Sie können ein Skript schreiben, um Ihre Temperatur in der Statusleiste von dwm anzuzeigen, zum Beispiel:

temp (){
    awk '{print $4"°C"}' <(acpi -t)
    echo $temp
}
xsetroot -name "$(temp)"

Ihre sensorsAusgabe kann je nach Setup komplexer sein: Dies funktioniert auf einem meiner Computer:

 awk '/temp1/ {print +$2"°C"}' <(sensors)

Wenn Sie in Statusfarben patchen , kann die Farbe der Ausgabe zusätzlich geändert werden, wenn die $tempTreffer höhere Werte erreichen ...

Das Arch-Wiki enthält eine Einführung in die Einrichtung eines grundlegenden Statusleistenskripts. Die dwm-Site enthält ein .xinitrc-Beispiel .

dwm-statusWeitere Informationen finden Sie in meinem Skript: http://beta.intuxication.org/jasonwryan/archer/file/tip/Scripts/dwm-status


Das ist eine wirklich großartige Idee, an die ich nicht gedacht habe. Ich hatte nie wirklich Zeit, mit der Statusleiste von dwm herumzuspielen, also wird das Spaß machen. Ich werde sehen, was ich verwalten und zurückkommentieren kann.
nppe

Hat perfekt funktioniert und jetzt habe ich eine schön angepasste Statusleiste :)
n0pe

Ausgezeichnet: Es gibt Ihnen einiges an Spielraum, um mit ...
Jasonwryan

2

Ich habe genau das gleiche Problem und verwende das Paket "cpufreqtools" (oder einfach "cpufreq" - kann mich nicht erinnern!).

Es gibt Ihnen zwei Befehle: cpufreq-info und cpufreq-set

cpufreq-info listet die aktuelle CPU-Geschwindigkeit sowie die minimale und maximale Geschwindigkeit auf. und die verfügbaren Schritte auch.

cpufreq-set ist für Sie nützlicher, da Sie die maximale Geschwindigkeit begrenzen können, die Ihre CPU jemals erreichen wird.

Meine überhitzungsanfällige CPU verfügt über die verfügbaren Geschwindigkeiten von 800 MHz, 1,60 GHz und 1,80 GHz. Also beschränke ich es wie folgt auf 1,60 GHz:

cpufreq-set --max 1,60 GHz

Klappt wunderbar!

Wenn Sie in Ihren Linux-Kenntnissen fortgeschrittener sind, können Sie es sogar in ein Bootup-Skript einfügen, damit es immer ausgeführt wird, sobald Ihr Linux startet.

Viel Glück.


cpufrequtils (Ubuntu 16.04).
Grüner Baum

1

Ich habe ein Skript erstellt, um diese Art von Überhitzungsproblemen direkt anzugehen. Begrenzen Sie Ihre CPU basierend auf einer gewünschten Temperatur. Es läuft automatisch im Hintergrund wie folgt:

sudo ./temp_throttle.sh 80

Mit diesem Befehl werden Ihre CPU-Kerne langsamer, wenn sie 80 Grad Celsius erreichen. Wenn die Temperatur sinkt, können die CPU-Kerne wieder schneller laufen. Temp_throttle finden Sie hier .


1
Erwarten Sie in Zukunft nicht, dass jeder Ubuntu mit seiner Standard-Sudo-Everything-Richtlinie ausführt. Erwähnen Sie entweder, dass das Skript in der Sudo-Konfiguration zugelassen werden muss, oder schreiben Sie (besser) einfach, dass Root-Berechtigungen erforderlich sind, die durch Sudo erreicht werden können. Oder beschreiben Sie unter Linux die capabilities(7)erforderlichen Funktionen (wie in der Manpage).
Peterph
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.