30 jun. 2008

Llega el veranito, refresca tu Ubuntu!

Con la llegada del verano y el calor aumentan los casos de sobrecalentamiento del sistema, con las incomodidades y riesgos que eso conlleva (sobre todo en los portátiles).

En este artículo veremos como identificar la temperatura del sistema (principalmente el procesador) y diferentes estrategias para reducir su calentamiento.

  • ¿Qué temperatura es la correcta?
Esta pregunta no tiene una respuesta exacta pues depende de muchos factores, como la marca y modelo de los componentes, el nivel de esfuerzo al que estamos sometiendo al sistema o las condiciones externas entre otros factores.

Pero para hacernos una idea podemos usar la siguiente tabla (valores aproximados):

Menos de 30º Posiblemente los sensores no están funcionando bien
30º - 60º Rango normal de temperaturas
60º - 70º Sistema sobrecalentado
Más de 70º Riesgo de avería (muchas BIOS apagan el sistema en estas condiciones)

  • Viendo la temperatura del sistema: lm-sensors
El paquete lm-sensors permite acceder a los sensores del sistema, obteniendo datos de temperatura, consumo de electricidad y velocidad de los ventiladores.

Si aun no lo hemos instalado lo haremos con la orden:
$ sudo aptitude install lm-sensors

Configuraremos el programa con la orden:
$ sudo sensors-detect

El configurador nos irá preguntando uno a uno por todos los tipos de sensores que reconoce, le diremos SI a todo y al finalizar el proceso nos dará una lista con los módulos que necesitamos cargar para tener acceso a los sensores del sistema, por ejemplo en mi caso veo esto:
#----cut here----
# Chip drivers
it87
k8temp
#----cut here----


Ahora podemos optar por reiniciar o cargar los módulos manualmente con el comando modprobe, en mi caso pondría:
$ sudo modprobe it87
$ sudo modprobe k8temp


Ya solo nos queda ejecutar el programa sensors para ver toda la información que pueden dar nuestros sensores, en mi caso muestra:
$ sensors
it8712-isa-0290
Adapter: ISA adapter
VCore 1: +1.09 V (min = +0.00 V, max = +4.08 V)
VCore 2: +1.14 V (min = +0.00 V, max = +4.08 V)
+3.3V: +3.23 V (min = +0.00 V, max = +4.08 V)
+5V: +4.97 V (min = +0.00 V, max = +6.85 V)
+12V: +11.97 V (min = +0.00 V, max = +16.32 V)
-12V: -7.23 V (min = -27.36 V, max = +3.93 V)
-5V: -8.37 V (min = -13.64 V, max = +4.03 V)
Stdby: +5.00 V (min = +0.00 V, max = +6.85 V)
VBat: +3.06 V
fan1: 4017 RPM (min = 0 RPM, div = 8)
fan2: 0 RPM (min = 0 RPM, div = 8)
M/B Temp: +127.0°C (low = +127.0°C, high = +105.0°C) sensor = transistor
CPU Temp: +127.0°C (low = +127.0°C, high = +105.0°C) sensor = transistor
Temp3: +35.0°C (low = +127.0°C, high = +106.0°C) sensor = thermal diode
cpu0_vid: +1.550 V

k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp: +32.0°C
Core1 Temp: +33.0°C


Podemos ver como en estado de reposo los 2 cores de mi Athlon64 X2 3.800+ marcan poco más de 30º

  • Viendo la temperatura del sistema: acpi
En el caso de que nuestro sistema no soporte el uso de sensores hay otra posibilidad, a través del comando acpi, especialmente últil en algunos portátiles:
$ acpi -V
Battery 1: charged, 100%
Thermal 1: ok, 49.0 degrees C
AC Adapter 1: on-line


Esta vez se trata de un portátil con la batería totalmente cargada, enchufado a la corriente eléctrica y a una temperatura de 49º

  • Reducir el uso de procesador
La manera más fácil y rápida de bajar la temperatura es reducir la carga del procesador, para ello intentaremos no ejecutar procesos que no necesitamos y descargar todos los procesos que no necesitemos.

Para saber qué procesos quitar puedes consultar los artículos Optimizar el arranque (III) Gnome y Optimizar el arranque (II) bum

  • Reducir la frecuencia del procesador
La mayoría de procesadores modernos pueden funcionar a diferentes frecuencias, a mayor frecuencia más disipación de calor. Si el procesador está a más de 60º podemos forzar el uso de una frecuencia menor (evidentemente también bajará el rendimiento) y veremos como rápidamente baja la temperatura.

Esta frecuencia se puede controlar con el comando cpufreq-selector. Un ejemplo:
$ sudo cpufreq-selector --cpu=0 --governor="powersave" --frequency=1000000

Pone el primer procesador en modo ahorro y fija la frecuencia de trabajo a 1Ghz. Para saber más sobre el uso de este comando podeis leer el man cpufreq-selector

Una manera aun más sencilla es usar el applet Monitor de frecuencia de la Cpu en el panel de Gnome:

Boton derecho sobre el panel - Añadir al panel - Monitor de frecuencia de la CPU

Por defecto el applet sólo muestra la configuración actual pero no permite cambiarla, para eso es necesario reconfigurar el paquete con la orden:
$ sudo dpkg-reconfigure gnome-applets

Nos preguntará si queremos que el applet cpufreq-selector se debe ejecutar con permisos de root, y le diremos que Sí. A partir de ese momento podemos gestionar la frecuencia de trabajo y la política de gestión de la CPU haciendo clic con el botón izquierdo en el applet.

  • Reducir el voltaje del procesador
A parte de manipular la frecuencia de trabajo de la(s) CPU(s) también podemos modificar el voltaje que se sumistra al procesador. A menor voltaje menos calor se genera. Esto no reduce el rendimiento del procesador pero si lo reducimos demasiado empezarán a aparecer fallos o directamente se apagará el sistema.

Existe un rango de voltajes al que un procesador puede funcionar, el fabricante nos dirá cual es el óptimo, pero podemos reducirlo para "enfriar" el sistema. La mayoría de BIOS permiten modificar este dato, lo iremos bajando poco a poco comprobando que no aparecen errores ni se apaga el sistema. En caso de producirse algun error volveremos a subir el voltaje.

La BIOS además nos permite controlar muchos otros parámetros como la frecuencia y voltaje de trabajo de la memoria, velocidad de los ventiladores, temperaturas máximas permitidas... os recomiendo leer a fondo el manual de vuestra placa base.

Aquí os dejo un par de pantallazos de la configuración de la BIOS para estos temas (disculpad la mala calidad de las imágenes pero no he encontrado ninguna manera de capturar la pantalla de la BIOS):


Configuración de frecuencia de CPU

Configuración de voltaje de la CPU y la memoria

  • Otros trucos
Comprar un disipador/ventilador mejor
Instalar un segundo ventilador (la mayoría de placas base tienen más de un conector para ventiladores)
Separa el ordenador de la pared (favorece la ventilación)
Mantén ventiladores y rejillas de ventilación limpias y libres de polvo
Informate bien de las opciones de ahorro de energía y control voltage de tu BIOS

  • Más información
En las páginas del manual de los comandos sensors, cpufreq-selector, acpi
Guía Ubuntu

Agradecimientos especiales a JTRIP y Tasslehof del canal #ubuntu de irc.irc-hispano.org.

7 comentarios :

Agustin dijo...

Buenos dias estuve leyendo tu entrada y falto justo lo que queria hacer, que al buscar la verdad no lo encontre, pero bueno tal vez vos sepas como hacerlo.

Mi problema es que la media de mis dos cores va de 45 a 55 grados con este calor que hace en verano, sin embargo con cualquier juego que corra estas temperaturas se van a 99-100 grados y a veces esta en 99 grados y tira un mensaje de que no puede actualizar la temperatura ya que la misma se va a mas de 100 grados, tengo suficiente pc como para correr ciertos juegos que me estan tirando esta temperatura, por ejemplo el OpenArena es un juego de muy bajos recursos y tengo un micro C2D E5200 de 2.5Ghz y una placa de video ATI HD4670 de 1GB DDR2 (con drivers Catalyst, no el FGLRX que trae el Ubuntu) por lo cual me parece que no deberia tirar tales temperaturas, en Windows llegue a correr el Modern Warfare 2 con graficos a full y hasta x4 de AA y para nada tiraba esas temperaturas.

Saludos!

Agustin dijo...

.... Perdon me olvide de decir lo que estaba buscando jaja, subir las RPM del fan del micro.

Saludos

fosco_ dijo...

@Agustín: tras mucho leer he llegado a la conclusión de que SÍ, se puede controlar la velocidad de los ventiladores, pero NO, no es fácil.

Para esto se usa el comando fancontrol, que establece los parámetros en función de unas reglas preestablecidas.

Mucho más sencillo y recomendable poner el procesador en modo Powersave

mad dijo...

excelente tutorial,gracias,me ha servido bastante

mad dijo...

Ha mi me pone esto al final.


Unloading i2c-dev... OK
Unloading cpuid... OK

despues de instalar sensors y de haberme detectado los que tenia

Dani Molina dijo...

@mad, esos mensajes no son importantes, sólo te dice que ha probado a cargar esos módulos pero no son para tu sistema, por lo que procede a descargarlos de la memoria.

mad dijo...

òk gracias,por la información,un saludo