Impedire il surriscaldamento della CPU


11

Quando eseguo app intensive come blender, la mia CPU può arrivare fino a 80.CI può rimuovere manualmente la CPU dal BIOS, ma vorrei che il mio PC rilevasse quando la temperatura della CPU diventa troppo alta e rallenta le cose fino a quando tutto si raffredda. C'è un modo per farlo automaticamente o anche manualmente per rallentare la CPU da Ubuntu


2
Nel frattempo, sembra una richiesta di funzionalità per Blender. È possibile utilizzare Performance Governor manualmente e arrestare le app manualmente con il monitor di sistema.
userDepth

Risposte:


11

Soluzione Intel Ubuntu 16.04+ per Sandy Bridge e processori più recenti

Da ( wiki.debian.org -thermald ) c'è il Debian (Ubuntu) che scrive su thermald Un demone Linux per il raffreddamento di tablet e laptop. Funziona solo con Sandy Bridge (2a generazione) e Intel Core più recenti. Quando la temperatura del sistema raggiunge una certa soglia, il daemon Linux attiva vari metodi di raffreddamento per provare a raffreddare il sistema.

Il demone termico Linux (thermald) monitora e controlla la temperatura su laptop, tablet PC con l'ultimo ponte sabbioso Intel e le ultime versioni della CPU Intel. Quando la temperatura del sistema raggiunge una certa soglia, il daemon Linux attiva vari metodi di raffreddamento per provare a raffreddare il sistema.

Funziona in due modi:

Modalità di configurazione zero

  • Per la maggior parte degli utenti, questo dovrebbe essere sufficiente per tenere sotto controllo la temperatura della CPU del sistema. Questo utilizza il sensore di temperatura DTS e utilizza driver di stato Intel P, driver Power clamp, controllo del limite di potenza media in esecuzione e cpufreq come metodi di raffreddamento.

Modalità di configurazione definita dall'utente

  • Ciò consente la configurazione in stile ACPI in un file di configurazione XML termico. Questo può essere usato per correggere la configurazione ACPI buggy o la regolazione fine aggiungendo più sensori e dispositivi di raffreddamento. Questo è un primo passo nell'implementazione di un controllo termico a circuito chiuso in modalità utente e può essere migliorato in base al feedback e ai suggerimenti della community.

Come installare

apt-get install thermald

TLP

Da Arch Linux :

TLP offre i vantaggi della gestione avanzata dell'alimentazione per Linux senza la necessità di comprendere ogni dettaglio tecnico. TLP viene fornito con una configurazione predefinita già ottimizzata per la durata della batteria, quindi è possibile installarla e dimenticarla. Tuttavia TLP è altamente personalizzabile per soddisfare le vostre esigenze specifiche.

Si prega di leggere il link TLP Arch Linux completo sopra. Ci sono problemi con Nvidia che richiedono modifiche alla configurazione.

Dopo molte prove ed errori con altri pacchetti, ho avuto un grande successo con TLP. Offre un controllo della ventola superiore e funziona perfettamente con thermald e p-state .

Poiché queste istruzioni di installazione per Ubuntu 15.04+ menzionano TLP non solo riduce il surriscaldamento, ma prolunga anche la durata della batteria.

Dall'installazione di TLP, Powerclamp (descritto di seguito) non è mai stato più richiamato.


Intel Powerclamp

Intel PowerClamp conducente è qui definito ( kernel.org - Intel Potenza Clamp.txt ) e fa parte del thermald sopra descritto. Un preventivo diretto per Powerclamp dal link:

Considerare la situazione in cui il consumo energetico di un sistema deve essere ridotto in fase di esecuzione, a causa del budget energetico, del vincolo termico o del livello di rumore e in cui non è preferito il raffreddamento attivo. La riduzione della potenza passiva gestita da software deve essere eseguita per prevenire le azioni hardware progettate per scenari catastrofici.

Attualmente, per la limitazione della CPU vengono utilizzati stati P, stati T (modulazione del clock) e CPU offlining.

Nelle CPU Intel, gli stati C offrono un'efficace riduzione della potenza, ma finora vengono utilizzati solo in modo opportunistico, in base al carico di lavoro. Con lo sviluppo del driver intel_powerclamp, è stato introdotto il metodo di sincronizzazione dell'iniezione inattiva su tutti i thread della CPU online. L'obiettivo è ottenere la residenza forzata e controllabile allo stato C.

Sono stati effettuati test / analisi nelle aree di potenza, prestazioni, scalabilità ed esperienza dell'utente. In molti casi, viene mostrato un chiaro vantaggio rispetto alla disattivazione della CPU o alla modulazione dell'orologio della CPU.


Come fai a sapere che Powerclamp è in esecuzione?

Powerclamp potrebbe mostrarsi solo una volta all'anno quando le prese d'aria della tua ventola ricevono troppa polvere e lanugine. Quindi, come fai a sapere che è effettivamente in esecuzione in background? Uso:

lsmod | grep intel

E dovresti vedere un elenco simile a questo:

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

Se vedi intel_raple intel_powerclampsai che funziona e aspetta semplicemente che le temperature superino gli 85 ° C.


Powerclamp in azione visualizzato da Conky

Ecco una schermata quando Powerclamp inietta cicli di sonno:

Kidie Injection

Normalmente su questo sistema la velocità di clock della CPU è compresa tra 2400 Mhz e 3400 Mhz quando si guardano video HTML5 e si aprono 10 schede di Chrome. Normalmente l'utilizzo della CPU è compreso tra il 9% e il 12% circa su 8 CPU. Quando le cose si surriscaldano ( 86 ° C ), entra in gioco Powerclamp e questo accade:

  • La velocità della CPU è ridotta a 1200 Mhz.
  • Picchi di utilizzo della CPU fino all'80%. Questo è fuorviante perché il 70% in più è il tempo di dormire.
  • I primi 9 processi CPU sono in genere 5 o 6 processi Chrome più Xorg, Conky, Pulse Audio e un kworker occasionale. Tuttavia ora 8 dei primi 10 sono il processo kidle_inject / x dove xva da 0 a 7. Per le prime 8 CPU.

Il driver Powerclamp funziona fino a quando le temperature scendono nuovamente sotto gli 85 ° C. Mentre il driver è in esecuzione, è possibile che tu abbia diviso i secondi di pausa nei video e possibilmente i secondi di ritardo della tastiera e del mouse.


Disabilita Intel Turbo Boost

Ai "vecchi tempi" di Ubuntu 14.04 Intel Turbo Boost era rotto, quindi la mia velocità del processore oscillava tra i 1200 Mhz e i 2400 Mhz. Dopo l'aggiornamento a Ubuntu 16.04 sarebbe salito a 3400 Mhz (3,4 Ghz) perché Turbo Boost stava finalmente funzionando. Ma ha anche aumentato il calore.

Per disabilitare Intel Turbo Boost utilizzare:

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

Correzione a breve termine in questo scenario

Per "risolvere il problema" ho risolto il problema con il vecchio dispositivo di raffreddamento del laptop con ventole doppie dall'armadio e sono saltato sotto il laptop. Ciò ha fatto scendere le temperature a 63 ° C sotto lo stesso carico di lavoro.

Il prossimo passo sarà comprimere l'aria nelle prese d'aria. Successivamente, il passaggio finale sarà il nuovo dissipatore di calore con tubi per CPU e GPU. In quell'operazione è necessaria anche una buona pasta termica come Arctic Silver 5. Un nuovo ventilatore era già stato installato l'anno scorso e sembra funzionare correttamente.

Aggiornamento del 25 gennaio 2017

Soffiò le ventole con aria compressa e le temperature scesero da 63 ° C a 56 ° C. Questo sta ancora usando il pad di raffreddamento del laptop, intendiamoci.

Aggiornamento del 06 agosto 2017

Usano TLP(descritto sopra) ormai da molti mesi e le temperature sono costanti intorno ai 50 ° C e le prestazioni della ventola sono ottimali.


Fai attenzione ai troppi driver di controllo della ventola

Dato che si tratta di un Dell, avevo installato I8K Fan Monitor / Control nella speranza che accelerasse la ventola sempre più velocemente. Quando scrivo sensorsottengo:

$ 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)

Ignora le temperature virtuali, sono fuori a pranzo . Sotto Ubuntu 14.04 erano accurati e l'ho usatotemp 1nel display Conky. Dopo l'aggiornamento di Ubuntu 16.04 ho dovuto fare riferimento a una terza temperatura non visualizzata su questa schermata. Per vedere letemperature REALI puoi usare questo comando:

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

Quando scrivo:

$ 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

Vedo il dell_smm_hwmonmodulo / driver del kernel. Quando google quel driver e le I8Kpersone segnalano che i due driver causano il blocco del sistema per una frazione di secondo ogni 10 secondi circa. Stavo avendo questo problema da solo, quindi ho dovuto rimuovere il controllo della ventola I8K .

Ci sono molte altre utilità e metodologie di raffreddamento, ma questo sta ottenendo TL; DR .


Wow, questa è proprio la risposta. Un sacco di cose interessanti qui.
Qwertie,

Ho installato Thermald, ma come far funzionare Powerclamp? Funziona di default? che temp cerca di non superare?

@cipricus Quando si utilizza: $ lsmod | grep powersi dovrebbe vedere questo: intel_powerclamp 16384 0. Altrimenti Powerclamp potrebbe essere nella lista nera per qualche motivo. La soglia di temperatura è 85 ° C ma penso che tu possa cambiarlo. Vedi: bugs.launchpad.net/ubuntu/+source/linux/+bug/1389077
WinEunuuchs2Unix

4

Ho creato un programma proprio per questo problema. Limitare la CPU in base alla temperatura desiderata. Funziona così:

sudo ./temp_throttle.sh 80

Questo comando rallenta i core della CPU quando raggiungono gli 80 gradi Celsius. Quando la temperatura scende, i core della CPU potranno funzionare di nuovo più velocemente. Puoi trovare temp_throttle qui .


Per eseguire lo script principale all'avvio con sudo e inserire la password in gnome-terminal, si potrebbe creare un piccolo script:

#!/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=45x15apre una piccola schermata del terminale; --profile=holdusa un profilo gnome-terminale chiamato "hold" che deve essere già stato creato con l'opzione "Quando il comando termina: tieni il terminale aperto", --hide-menubarnasconde i menu per quella finestra)

Dopo averlo reso eseguibile, questo piccolo script (chiamiamolo temp_throttle_80.sh) può quindi essere aggiunto all'elenco di avvio e ti verrà richiesto di inserire la password all'avvio; quindi, se viene raggiunta la temperatura indicata, viene riportata la sua azione:

inserisci qui la descrizione dell'immagine


1
Bel copione. Ho anche creato uno script per mettere il pc in modalità sleep quando raggiunge una temperatura massima. link
kenn

È un'ottima risposta e funziona in 16.04


Script che necessitano di sudopoteri che inserisco cronusando le rebootopzioni. In questo modo non è necessario inserire una password all'avvio. Esistono altri modi per farlo, ma cron è stato il più semplice da configurare.
WinEunuuchs2Unix il

Cordiali saluti, la risposta che ho pubblicato su Intel Powerclamp riduce la CPU alla velocità più bassa. Tuttavia, inietta anche gli stati inattivi per non fare nulla alla CPU. Penso che la tua sceneggiatura sia fantastica ma potresti voler sapere cosa sta facendo Intel. Credo che sia open source e puoi studiarlo se sei interessato.
WinEunuuchs2Unix il

1

puoi limitare la frequenza della CPU, in modo da poter abbassare la frequenza e controllare il calore dalla CPU.

cpufreq-selector -f <mention the frq u want in the Khz>

È permanente o tornerà dopo un riavvio?
Qwertie,

è un set fisso e se vuoi modificarlo, devi farlo di nuovo.
rʒɑdʒɑ

Devi installare gnome-appletsper farlo funzionare
kiri il

@ minerz029 questo è un comando terminale amico mio.
rʒɑdʒɑ

1
@rajagenupula Ottengo un comando non trovato erroreThe program 'cpufreq-selector' is currently not installed. You can install it by typing: sudo apt-get install gnome-applets
kiri
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.