Verhindern Sie die Überhitzung der CPU

11

Wenn intensive Apps wie Blender ausgeführt werden, kann meine CPU bis zu 80 erreichen. CI kann die CPU manuell über das BIOS übertakten, aber ich möchte, dass mein PC erkennt, wenn die CPU-Temperatur zu hoch wird, und die Geschwindigkeit verlangsamt, bis sich alles abgekühlt hat. Gibt es eine Möglichkeit, dies automatisch oder sogar manuell zu tun, um die CPU von Ubuntu zu verlangsamen?

Qwertie
quelle
2
Dies scheint in der Zwischenzeit eine Funktionsanforderung für Blender zu sein. Sie können Performance Governor manuell verwenden und Apps manuell mit dem Systemmonitor stoppen.
userDepth

Antworten:

11

Intel Ubuntu 16.04+ Lösung für Sandy Bridge und neuere Prozessoren

Von ( wiki.debian.org -thermald ) gibt es Debians (Ubuntus) Artikel über Thermald Ein Linux-Daemon zum Kühlen von Tablets und Laptops. Dies funktioniert nur für Sandy Bridge (2. Generation) und neuere Intel Cores. Sobald die Systemtemperatur einen bestimmten Schwellenwert erreicht, aktiviert der Linux-Dämon verschiedene Kühlmethoden, um zu versuchen, das System zu kühlen.

Der Linux Thermal Daemon (Thermald) überwacht und steuert die Temperatur in Laptops, Tablets und PCs mit der neuesten Intel Sandy Bridge und den neuesten Intel CPU-Versionen. Sobald die Systemtemperatur einen bestimmten Schwellenwert erreicht, aktiviert der Linux-Dämon verschiedene Kühlmethoden, um zu versuchen, das System zu kühlen.

Es arbeitet in zwei Modi:

Null-Konfigurationsmodus

  • Für die meisten Benutzer sollte dies ausreichen, um die CPU-Temperatur des Systems unter Kontrolle zu bringen. Dies verwendet den DTS-Temperatursensor und verwendet den Intel P-Status-Treiber, den Power Clamp-Treiber, die Running Average Power Limit-Steuerung und cpufreq als Kühlmethoden.

Benutzerdefinierter Konfigurationsmodus

  • Dies ermöglicht die Konfiguration im ACPI-Stil in einer thermischen XML-Konfigurationsdatei. Dies kann verwendet werden, um die fehlerhafte ACPI-Konfiguration zu korrigieren oder die Feinabstimmung durch Hinzufügen weiterer Sensoren und Kühlgeräte. Dies ist ein erster Schritt bei der Implementierung einer Wärmesteuerung mit geschlossenem Regelkreis im Benutzermodus und kann basierend auf dem Feedback und den Vorschlägen der Community verbessert werden.

Wie installiert man

apt-get install thermald

TLP

Von Arch Linux :

TLP bietet Ihnen die Vorteile der erweiterten Energieverwaltung für Linux, ohne dass Sie jedes technische Detail verstehen müssen. TLP wird mit einer Standardkonfiguration geliefert, die bereits für die Akkulaufzeit optimiert ist. Sie können sie also einfach installieren und vergessen. Trotzdem ist TLP in hohem Maße anpassbar, um Ihre spezifischen Anforderungen zu erfüllen.

Bitte lesen Sie den vollständigen Arch Linux TLP-Link oben. Es gibt Probleme mit Nvidia, die Konfigurationsänderungen erfordern.

Nach vielen Versuchen und Fehlern mit anderen Paketen hatte ich großen Erfolg mit TLP. Es bietet eine hervorragende Lüftersteuerung und arbeitet nahtlos mit Thermald- und P-Zuständen .

Wie in diesen Installationsanweisungen für Ubuntu 15.04+ erwähnt, reduziert TLP nicht nur die Überhitzung, sondern verlängert auch die Akkulaufzeit.

Seit der Installation von TLP wurde Powerclamp (unten beschrieben) nie wieder aufgerufen.


Intel Powerclamp

Der Intel Powerclamp- Treiber wird hier definiert ( kernel.org - Intel Power Clamp.txt ) und ist Teil der oben beschriebenen Thermald . Ein direktes Zitat für Powerclamp über den Link:

Stellen Sie sich die Situation vor, in der der Stromverbrauch eines Systems zur Laufzeit aufgrund des Strombudgets, der thermischen Einschränkungen oder des Geräuschpegels reduziert werden muss und eine aktive Kühlung nicht bevorzugt wird. Eine softwaregesteuerte passive Leistungsreduzierung muss durchgeführt werden, um die Hardwareaktionen zu verhindern, die für katastrophale Szenarien ausgelegt sind.

Derzeit werden P-Zustände, T-Zustände (Taktmodulation) und CPU-Offining für die CPU-Drosselung verwendet.

Auf Intel-CPUs bieten C-Zustände eine effektive Leistungsreduzierung, werden jedoch bisher nur opportunistisch verwendet, basierend auf der Arbeitslast. Mit der Entwicklung des Treibers intel_powerclamp wurde die Methode zum Synchronisieren der Leerlaufinjektion über alle Online-CPU-Threads eingeführt. Ziel ist es, eine erzwungene und kontrollierbare Residenz im C-Staat zu erreichen.

Tests / Analysen wurden in den Bereichen Leistung, Leistung, Skalierbarkeit und Benutzererfahrung durchgeführt. In vielen Fällen zeigt sich ein klarer Vorteil gegenüber dem Ausschalten der CPU oder dem Modulieren des CPU-Takts.


Woher wissen Sie, dass Powerclamp läuft?

Powerclamp zeigt sich möglicherweise nur einmal im Jahr, wenn Ihre Lüfteröffnungen zu viel Staub und Flusen bekommen. Woher weißt du, dass es tatsächlich im Hintergrund läuft? Verwenden:

lsmod | grep intel

Und Sie sollten eine ähnliche Liste sehen:

btintel                16384  1 btusb
bluetooth             520192  29 bnep,btbcm,btrtl,btusb,rfcomm,btintel
intel_rapl             20480  0
intel_powerclamp       16384  0
   (.... more intel drivers ....)
snd                    81920  18 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_idt,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device

Wenn Sie sehen intel_raplund intel_powerclampwissen, dass es funktioniert und einfach darauf warten, dass die Temperaturen 85 ° C überschreiten.


Powerclamp in Aktion von Conky angezeigt

Hier ist ein Screenshot, wenn Powerclamp Schlafzyklen injiziert:

Kidie-Injektion

Normalerweise beträgt die CPU-Taktrate auf diesem System 2400 MHz bis 3400 MHz, wenn HTML5-Videos und 10 geöffnete Chrome-Registerkarten angezeigt werden. Normalerweise liegt die CPU-Auslastung bei 8 CPUs zwischen 9% und 12%. Wenn die Dinge zu heiß ( 86C ) PowerClamp Tritte in und dies geschieht:

  • Die CPU-Geschwindigkeit wird auf 1200 MHz reduziert.
  • Die CPU-Auslastung steigt um bis zu 80%. Dies ist irreführend, da die zusätzlichen 70% Schlafzeit sind.
  • Die Top 9 CPU-Prozesse sind normalerweise 5 oder 6 Chrome-Prozesse plus Xorg, Conky, Pulse Audio und ein gelegentlicher Kworker. Jetzt sind jedoch 8 der Top 10 der Prozess kidle_inject / x , der xzwischen 0 und 7 liegt. Für die ersten 8 CPUs.

Der Powerclamp- Treiber wird ausgeführt, bis die Temperaturen wieder unter 85 ° C fallen. Während der Treiber ausgeführt wird, haben Sie möglicherweise eine Pause in Sekundenbruchteilen in Ihren Videos und möglicherweise eine Verzögerung von Tastatur und Maus in Sekundenbruchteilen.


Deaktivieren Sie Intel Turbo Boost

In den "coolen alten Zeiten" von Ubuntu 14.04 war Intel Turbo Boost kaputt, so dass meine Prozessorgeschwindigkeit zwischen 1200 Mhz und 2400 Mhz schwankte. Nach dem Upgrade auf Ubuntu 16.04 würde es auf 3400 MHz (3,4 GHz) steigen, da Turbo Boost endlich funktionierte. Aber es hat auch die Hitze erhöht.

So deaktivieren Sie Intel Turbo Boost:

echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo

Kurzfristige Lösung in diesem Szenario

Um dieses Problem zu beheben, zog ich das alte Laptop-Kühlpad mit zwei Lüftern aus dem Schrank und tauchte unter den Laptop. Dadurch sanken die Temperaturen unter der gleichen Arbeitslast auf 63 ° C.

Der nächste Schritt ist die Druckluft in den Lüftungsschlitzen. Danach wird der letzte Schritt der neue Kühlkörper mit Rohren für CPU und GPU sein. Bei diesem Vorgang wird auch eine gute Wärmeleitpaste wie Arctic Silver 5 benötigt. Ein neuer Lüfter wurde bereits im letzten Jahr installiert und das scheint in Ordnung zu sein.

Update 25. Januar 2017

Lüftungsschlitze mit Druckluft ausblasen und die Temperaturen von 63 ° C auf 56 ° C sinken. Dies verwendet wohlgemerkt immer noch das Laptop-Kühlkissen.

Update 06. August 2017

Ich benutze TLP(oben beschrieben) seit vielen Monaten und die Temperaturen sind konstant um 50 ° C und die Lüfterleistung ist optimal.


Achten Sie auf zu viele Lüftersteuerungstreiber

Da dies ein Dell ist, hatte ich I8K Fan Monitor / Control installiert, in der Hoffnung, dass es den Lüfter schneller und schneller beschleunigen würde. Wenn ich tippe, sensorsbekomme ich:

$ sensors
dell_smm-virtual-0
Adapter: Virtual device
Processor Fan: 3963 RPM
CPU:            +63.0°C  
Ambient:        +49.0°C  
GPU:            +54.0°C  
Other:          +79.0°C  

acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +106.0°C)
temp2:        +29.8°C  (crit = +106.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +65.0°C  (high = +87.0°C, crit = +105.0°C)
Core 0:         +65.0°C  (high = +87.0°C, crit = +105.0°C)
Core 1:         +64.0°C  (high = +87.0°C, crit = +105.0°C)
Core 2:         +63.0°C  (high = +87.0°C, crit = +105.0°C)
Core 3:         +57.0°C  (high = +87.0°C, crit = +105.0°C)

Ignorieren Sie die virtuellen Temps, sie sind zum Mittagessen unterwegs . Unter Ubuntu 14.04 waren die genau und ich habe sietemp 1im Conky-Display verwendet. Nach dem Upgrade von Ubuntu 16.04 musste ich mich auf eine dritte Temperatur beziehen, die auf diesem Bildschirm nicht angezeigt wurde. Um die REAL- Temps anzuzeigen, können Sie diesen Befehl verwenden:

$ cat /sys/class/thermal/thermal_zone*/temp
27800
29800
62000

Wenn ich tippe:

$ lsmod |grep dell
dell_wmi               16384  0
sparse_keymap          16384  1 dell_wmi
dell_laptop            20480  0
dell_smbios            16384  2 dell_wmi,dell_laptop
dcdbas                 16384  1 dell_smbios
dell_smm_hwmon         16384  0
wmi                    16384  1 dell_wmi
video                  40960  3 dell_wmi,dell_laptop,i915

Ich sehe das dell_smm_hwmonKernelmodul / den Kernel-Treiber. Wenn ich diesen Treiber google und die I8KLeute melden, verursachen die beiden Treiber etwa alle 10 Sekunden einen Sekundenbruchteil des Systems. Ich hatte dieses Problem selbst und musste daher die I8K-Lüftersteuerung entfernen .

Es gibt viele andere Dienstprogramme und Kühlmethoden, aber dies wird TL; DR .

WinEunuuchs2Unix
quelle
Wow, das ist schon die Antwort. Viele coole Sachen hier.
Qwertie
Ich habe Thermald installiert, aber wie läuft Powerclamp? Läuft es standardmäßig? Welche Temperatur versucht es nicht zu übertreffen?
@cipricus Wenn Sie verwenden: $ lsmod | grep powersollten Sie Folgendes sehen : intel_powerclamp 16384 0. Wenn nicht, wird Powerclamp möglicherweise aus irgendeinem Grund auf die schwarze Liste gesetzt. Die Schwellentemperatur beträgt 85 ° C, aber ich denke, Sie können sie ändern. Siehe: bugs.launchpad.net/ubuntu/+source/linux/+bug/1389077
WinEunuuchs2Unix
4

Ich habe ein Programm nur für dieses Problem erstellt. Begrenzen Sie Ihre CPU basierend auf einer gewünschten Temperatur. Es läuft so:

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 .


Um das Hauptskript beim Start mit sudo auszuführen und das Passwort in gnome-terminal einzugeben, könnte man ein kleines Skript erstellen:

#!/bin/bash

cd "/path/to/the/directory/temp-throttle-stable/"
gnome-terminal -e 'sudo ./temp_throttle.sh 80' --geometry=45x15 --hide-menubar --profile=hold  

( --geometry=45x15öffnet einen kleinen Terminalbildschirm; --profile=holdverwendet ein Gnome-Terminal-Profil namens "hold", das bereits mit der Option "Wenn der Befehl beendet wird: Halten Sie das Terminal offen" erstellt werden muss, und --hide-menubarversteckt die Menüs für dieses Fenster)

Nachdem Sie es ausführbar gemacht haben, kann dieses kleine Skript (nennen wir es temp_throttle_80.sh) zur Startliste hinzugefügt werden, und Sie werden beim Start aufgefordert, ein Kennwort einzugeben. Wenn dann die erwähnte Temperatur erreicht ist, wird ihre Wirkung gemeldet:

Geben Sie hier die Bildbeschreibung ein

Sepero
quelle
1
Schönes Skript. Ich habe auch ein Skript erstellt, um den PC in den Ruhezustand zu versetzen, wenn er eine maximale Temperatur erreicht. Link
Kenn
Es ist eine großartige Antwort und funktioniert in 16.04
Skripte, die sudoBefugnisse benötigen , die ich cronmithilfe der rebootOptionen verwende. Auf diese Weise muss beim Booten kein Passwort eingegeben werden. Es gibt andere Möglichkeiten, aber Cron war für mich am einfachsten einzurichten.
WinEunuuchs2Unix
Zu Ihrer Information: Die Antwort, die ich auf Intel Powerclamp gepostet habe, drosselt die CPU auf die niedrigste Geschwindigkeit zurück. Es werden jedoch auch Leerlaufzustände eingefügt, damit die CPU nichts unternimmt. Ich denke, Ihr Skript ist großartig, aber Sie möchten vielleicht wissen, was Intel tut. Ich glaube, es ist Open Source und Sie können es studieren, wenn Sie interessiert sind.
WinEunuuchs2Unix
1

Sie können die CPU-Frequenz begrenzen, so dass Sie die Frequenz senken und die Wärme von der CPU steuern können.

cpufreq-selector -f <mention the frq u want in the Khz>
rɑːdʒɑ
quelle
Ist das dauerhaft oder geht es nach einem Neustart zurück?
Qwertie
Es ist ein fester Satz und wenn Sie ihn ändern möchten, müssen Sie es erneut tun.
rɑːdʒɑ
Sie müssen installieren, gnome-appletsdamit dies funktioniert
Kiri
@ minerz029 Dies ist ein Terminalbefehl, mein Freund.
rɑːdʒɑ
1
@rajagenupula Ich bekomme einen Befehl nicht gefunden FehlerThe program 'cpufreq-selector' is currently not installed. You can install it by typing: sudo apt-get install gnome-applets
Kiri