Evitar el sobrecalentamiento de la CPU

11

Cuando ejecuto aplicaciones intensivas como Blender, mi CPU puede alcanzar hasta 80.CI puede liberar manualmente la CPU del BIOS, pero me gustaría que mi PC detecte cuando la temperatura de la CPU sea demasiado alta y disminuya la velocidad hasta que todo se enfríe. ¿Hay alguna manera de hacer esto de manera automática o incluso manual para desacelerar la CPU de ubuntu

Qwertie
fuente
2
Mientras tanto, esto parece una solicitud de función para Blender. Puede usar manualmente Performance Governor y detener aplicaciones manualmente con el monitor del sistema.
userDepth

Respuestas:

11

Solución Intel Ubuntu 16.04+ para Sandy Bridge y procesadores más nuevos

De ( wiki.debian.org -thermald ) está el artículo de Debian (Ubuntu) sobre thermald Un demonio de Linux para enfriar tabletas y computadoras portátiles. Esto solo funciona para Sandy Bridge (segunda generación) y los núcleos Intel más nuevos. Una vez que la temperatura del sistema alcanza un cierto umbral, el demonio de Linux activa varios métodos de enfriamiento para tratar de enfriar el sistema.

Linux Thermal Daemon (Thermald) monitorea y controla la temperatura en las computadoras portátiles, tabletas PC con la última versión de Intel Sandy Bridge y las últimas versiones de CPU de Intel. Una vez que la temperatura del sistema alcanza un cierto umbral, el demonio de Linux activa varios métodos de enfriamiento para tratar de enfriar el sistema.

Funciona en dos modos:

Modo de configuración cero

  • Para la mayoría de los usuarios, esto debería ser suficiente para controlar la temperatura de la CPU del sistema. Utiliza el sensor de temperatura DTS y utiliza el controlador de estado Intel P, el controlador de pinza de alimentación, el control del límite de potencia promedio en ejecución y cpufreq como métodos de enfriamiento.

Modo de configuración definido por el usuario

  • Esto permite la configuración de estilo ACPI en un archivo de configuración XML térmica. Esto se puede usar para arreglar la configuración ACPI defectuosa o afinar agregando más sensores y dispositivos de enfriamiento. Este es un primer paso para implementar un control térmico de circuito cerrado en modo de usuario y se puede mejorar en función de los comentarios y sugerencias de la comunidad.

Cómo instalar

apt-get install thermald

TLP

De Arch Linux :

TLP le ofrece los beneficios de la administración avanzada de energía para Linux sin la necesidad de comprender cada detalle técnico. TLP viene con una configuración predeterminada ya optimizada para la duración de la batería, por lo que puede instalarla y olvidarla. Sin embargo, TLP es altamente personalizable para cumplir con sus requisitos específicos.

Lea el enlace completo de TLP de Arch Linux arriba. Hay problemas con Nvidia que requieren cambios de configuración.

Después de muchas pruebas y errores con otros paquetes, he tenido un gran éxito con TLP. Ofrece un control superior del ventilador y funciona a la perfección con los estados térmicos y p .

Como estas instrucciones de instalación para Ubuntu 15.04+ mencionan que TLP no solo reduce el sobrecalentamiento sino que también extiende la vida útil de la batería.

Desde la instalación de TLP, Powerclamp (descrito a continuación) nunca se ha invocado nuevamente.


Intel Powerclamp

El controlador Powerclamp de Intel se define aquí ( kernel.org - Intel Power Clamp.txt ) y es parte de thermald descrito anteriormente. Una cotización directa para Powerclamp desde el enlace:

Considere la situación en la que el consumo de energía de un sistema debe reducirse en tiempo de ejecución, debido al presupuesto de energía, la restricción térmica o el nivel de ruido, y donde no se prefiere el enfriamiento activo. La reducción de energía pasiva administrada por software debe realizarse para evitar las acciones de hardware diseñadas para escenarios catastróficos.

Actualmente, los estados P, los estados T (modulación del reloj) y la desconexión de la CPU se utilizan para la aceleración de la CPU.

En las CPU Intel, los estados C proporcionan una reducción de energía efectiva, pero hasta ahora solo se usan de manera oportunista, en función de la carga de trabajo. Con el desarrollo del controlador intel_powerclamp, se introdujo el método de sincronización de la inyección inactiva en todos los hilos de la CPU en línea. El objetivo es lograr la residencia forzada y controlable del estado C.

La prueba / análisis se ha realizado en las áreas de potencia, rendimiento, escalabilidad y experiencia del usuario. En muchos casos, se muestra una clara ventaja sobre desconectar la CPU o modular el reloj de la CPU.


¿Cómo sabes que Powerclamp está funcionando?

Es posible que Powerclamp solo se muestre una vez al año cuando las ventilaciones de su ventilador tengan demasiado polvo y pelusa. Entonces, ¿cómo sabes que en realidad se está ejecutando en segundo plano? Utilizar:

lsmod | grep intel

Y debería ver una lista similar a esta:

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

Si ve intel_raply intel_powerclampsabe que está funcionando y simplemente espera que las temperaturas superen los 85C.


Powerclamp en acción mostrado por Conky

Aquí hay una captura de pantalla cuando Powerclamp inyecta ciclos de suspensión:

Inyección de Kidie

Normalmente en este sistema, la velocidad del reloj de la CPU es de 2400 Mhz a 3400 Mhz cuando se ve un video HTML5 y se abren 10 pestañas de Chrome. Normalmente, la utilización de la CPU es aproximadamente del 9% al 12% en 8 CPU. Cuando las cosas se ponen demasiado calientes ( 86C ), Powerclamp entra en acción y esto sucede:

  • La velocidad de la CPU se reduce a 1200 Mhz.
  • La utilización de la CPU aumenta hasta el 80%. Esto es engañoso porque el 70% adicional es el tiempo de dormir.
  • Los 9 principales procesos de CPU suelen ser 5 o 6 procesos de Chrome más Xorg, Conky, Pulse Audio y un kworker ocasional. Sin embargo, ahora 8 de los 10 principales son el proceso kidle_inject / x donde xes de 0 a 7. Para las primeras 8 CPU.

El controlador Powerclamp funciona hasta que las temperaturas caigan por debajo de 85C nuevamente. Mientras el controlador se está ejecutando, es posible que tenga una pausa de una fracción de segundo en sus videos y posiblemente una demora de segundo del teclado y del mouse.


Deshabilitar Intel Turbo Boost

En los "viejos tiempos" de Ubuntu 14.04, Intel Turbo Boost se rompió, por lo que la velocidad de mi procesador fluctuó entre 1200 Mhz y 2400 Mhz. Después de la actualización a Ubuntu 16.04, subiría a 3400 Mhz (3.4 Ghz) porque Turbo Boost finalmente estaba funcionando. Pero también aumentó el calor.

Para deshabilitar el uso de Intel Turbo Boost:

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

Solución a corto plazo en este escenario

Para solucionar el problema con la "curita", saqué la vieja almohadilla de la laptop con dos ventiladores del armario y la metí debajo de la laptop. Esto redujo las temperaturas a 63 ° C bajo la misma carga de trabajo.

El siguiente paso será comprimir el aire en los respiraderos. Después de eso, el paso final será un nuevo disipador térmico de enfriamiento con tuberías para CPU y GPU. También se necesita una buena pasta térmica como Arctic Silver 5 en esa operación. Ya se instaló un nuevo ventilador el año pasado y parece estar funcionando bien.

Actualización 25 de enero de 2017

Sopló las ventilaciones del ventilador con aire comprimido y las temperaturas se redujeron de 63C a 56C. Esto todavía está usando la almohadilla de enfriamiento de la computadora portátil.

Actualización 06 de agosto de 2017

He estado usando TLP(descrito anteriormente) durante muchos meses y las temperaturas son constantes alrededor de 50 ° C y el rendimiento del ventilador es óptimo.


Cuidado con demasiados controladores de control de ventilador

Como se trata de un Dell, instalé I8K Fan Monitor / Control con la esperanza de acelerar el ventilador antes y más rápido. Cuando escribo sensorsme sale:

$ 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 las temperaturas virtuales, salen a almorzar . Bajo Ubuntu 14.04, eran precisos y utilicétemp 1en la pantalla Conky. Después de la actualización de Ubuntu 16.04, tuve que referirme a una tercera temperatura que no se muestra en esta pantalla. Para ver lastemperaturas REALES puede usar este comando:

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

Cuando escribo:

$ 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

Veo el dell_smm_hwmonmódulo / controlador del núcleo. Cuando busco en Google ese controlador y la I8Kgente informa que los dos controladores causan bloqueos del sistema por una fracción de segundo cada 10 segundos más o menos. Estaba teniendo este problema, así que tuve que eliminar el control del ventilador I8K .

Hay muchas otras utilidades y metodologías de enfriamiento, pero esto está obteniendo TL; DR .

WinEunuuchs2Unix
fuente
Wow, esa es la respuesta. Muchas cosas geniales aquí.
Qwertie
He instalado thermald, pero ¿cómo ejecutar powerclamp? ¿Se está ejecutando por defecto? ¿Qué temperatura está tratando de no superar?
@cipricus Cuando se utiliza: $ lsmod | grep powerusted debe ver esto: intel_powerclamp 16384 0. Si no, Powerclamp podría estar en la lista negra por alguna razón. La temperatura umbral es de 85 ° C, pero creo que puede cambiarla. Ver: bugs.launchpad.net/ubuntu/+source/linux/+bug/1389077
WinEunuuchs2Unix
4

Creé un programa solo para este problema. Limite su CPU según la temperatura deseada. Funciona así:

sudo ./temp_throttle.sh 80

Ese comando hará que los núcleos de tu CPU se ralenticen cuando alcancen los 80 grados centígrados. Cuando la temperatura baja, los núcleos de la CPU podrán volver a funcionar más rápido. Puedes encontrar temp_throttle aquí .


Para ejecutar el script principal al inicio con sudo e ingresar la contraseña en gnome-terminal, se podría crear un script pequeño:

#!/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=45x15abre una pequeña pantalla de terminal; --profile=holdutiliza un perfil de terminal de gnomo llamado "espera" que ya debe haberse creado con la opción "Cuando el comando sale: mantenga abierta la terminal", --hide-menubaroculta los menús de esa ventana)

Después de hacerlo ejecutable, este pequeño script (llamémoslo temp_throttle_80.sh) se puede agregar a la lista de inicio y se le pedirá que ingrese la contraseña al inicio; entonces, si se alcanza la temperatura mencionada, se informa su acción:

ingrese la descripción de la imagen aquí

Sepero
fuente
1
Buen guión. También hice un script para poner la PC a dormir cuando alcanza una temperatura máxima. enlace
kenn
Es una gran respuesta y funciona en 16.04
Scripts que necesitan sudopoderes que puse en cronusar las rebootopciones. De esa manera, no es necesario ingresar una contraseña en el arranque. Hay otras formas de hacerlo, pero cron fue la más fácil de configurar.
WinEunuuchs2Unix
Para su información, la respuesta que publiqué en Intel Powerclamp acelera la CPU a la velocidad más baja. Sin embargo, también inyecta estados inactivos para que la CPU no haga nada. Creo que su secuencia de comandos es excelente, pero es posible que desee saber qué está haciendo Intel. Creo que es de código abierto y puedes estudiarlo si estás interesado.
WinEunuuchs2Unix
1

puede limitar la frecuencia de la CPU, de modo que pueda reducir la frecuencia y controlar el calor de la CPU.

cpufreq-selector -f <mention the frq u want in the Khz>
rɑːdʒɑ
fuente
¿Es esto permanente o volverá después de un reinicio?
Qwertie
es un conjunto fijo y si quieres modificarlo, nuevamente tienes que hacerlo.
rɑːdʒɑ
Necesitas instalar gnome-appletspara que esto funcione
kiri
@ minerz029 este es un comando de terminal amigo.
rɑːdʒɑ
1
@rajagenupula Recibo un error de comando no encontradoThe program 'cpufreq-selector' is currently not installed. You can install it by typing: sudo apt-get install gnome-applets
kiri