89 - Monitorizar la temperatura en la Raspberry Pi 4
Como monitorizar la temperatura en la Raspberry Pi 4 y otros modelos. Ensayos y resultados de modificar el firmware para rebajar la temperatura.
Después del crossover del pasado jueves con Ángel de uGeek, he estado dando muchas vueltas al asunto de la temperatura. Iba a comentarlo como un problema, pero la cuestión es que realmente no es un problema. Se trata de una realidad con la que debemos lidiar. En este sentido he querido ver el alcance del tema. Para esto he realizado diferentes pruebas, y he decidido monitorizar la temperatura en en la Raspberry Pi 4 y también la Raspberry Pi 3 B.
Así el objetivo de este podcast, es contarte todos los ensayos que he realizado, así como sus conclusiones, y como te digo, no solo para la Raspberry Pi 4, sino también para la 3 y por supuesto para el clúster compuesto por la 3 mas las 4 Raspberry Pi Zero.
Monitorizar la temperatura en la Raspberry Pi 4
Como te decía en la introducción de este podcast, el objetivo es no solo analizar la situación de la temperatura en la Raspberry Pi 4, sino también en la 3, tanto con caja y ventilador como directamente expuesta, y lo mismo en el caso del cluster.
Monitorizar la Rasbperry Pi
Para seguir con detalle la evolución de la temperatura en cada una de las Raspberry, les he instalado RPI Monitor. Si no conoces esta herramienta, te sugiero que le des un vistazo al capítulo del tutorial sobre primeros pasos con la Raspberry, en el que le doy un repaso a esta aplicación para monitorizar la Raspberry.
RPI Monitor es un software que te va a permitir monitorizar tu Raspberry directamente desde una página web, a la que podrás acceder directamente desde cualquier lugar, ya sea de tu red local, o si has configurado una VPN conforme te indiqué en el artículo sobre como acceder a la red local desde fuera desde cualquier lugar de internet.
La cuestión, es que desde la propia página web, puedes de un solo vistazo comprobar la situación de la Rasbperry. Datos como la versión, uptime, CPU, temperatura, etc… Pero lo que resulta mas interesante, y precisamente por lo que he querido mencionar en este podcast, es que te permite mostrar estadísticas.
Te permite mostrar en un sencillo gráfico la evolución de la temperatura, con lo que precisamente para lo que quieres hacer, de comprobar la evolución de la temperatura con el tiempo te va a venir fantástico.
Como te digo, te recomiendo que le des un vistazo al artículo sobre monitorizar la Raspberry, y la instale, por que es realmente sencilla de instalar, tiene un reducido consumo de recursos y te aporta toda la información que necesitas. Además de ser completamente configurable.
Ensayos
Inicialmente realicé los ensayos sin carga, pero evidentemente esto no se va a corresponder con la realidad en ningún caso. La cuestión es que para ponerla en carga he utilizado un benchmark sencillo, pensado precisamente en placas SBC. Se trata de sbc-bench.
Este benchmark utiliza diferentes herramientas como son,
mhz
, esta herramienta calcula la velocidad real de reloj.tinymembench
ensaya tanto el ancho de banda como la latencia de la memoria RAMcpuminer
este permite comprobar de forma apropiada la disipación de calor así como las posibles inestabilidades bajo carga.7-zip
, proporciona una buena idea del comportamiento de la placa en bajo demanda.OpenSSL
, permite comprobar si la placa puede hacer uso de determinados motores de cifrado.
Indicar que el ensayo no comienza mientras que no se cumplen determinadas circunstancias referentes a la situación de carga de la placa.
Throttling
Indicarte que esto del Throttling
es un mecanismo que consiste en reducir la frecuencia del procesador en el caso de que se sobrecaliente. Que es precisamente el problema al que nos enfrentamos.
Al alcanzar determinada temperatura el procesador baja la frecuencia a la que está funcionando por debajo de su frecuencia base, con el objetivo de evitar, precisamente que el procesador resulte dañado por la elevada temperatura.
Como te puedes imaginar, que entrar en throttling
es un verdadero desastre porque reduce significativamente le rendimiento. Pero es que no utilizar este procedimiento es todavía peor, puesto que evidentemente conseguiremos reducir significativamente la vida del procesador.
Y ¿a que temperatura se pone en marcha el trhottling
? Pues depende del fabricante. Pero decirte, y esto lo vas a ver a continuación.
Monitorizar la temperatura en la Raspberry Pi 3
He probado de forma simultánea tres Raspberry,
- Una que estaba en el exterior realizando un timelapse para un próximo podcast. Esta Raspberry, tiene los típicos disipadores, pero no tiene ventilación mecánica. No está en caja, sino que está expuesta directamente. En este caso la temperatura ha sido de entre 40 y 42 ºC. Excepto durante la puesta en carga que tiene picos de 50 ºC. Sin embargo no se ha experimentado ningún caso de throttling.
- La siguiente de las Raspberry Pi 3 Rev 1.2, que está recientemente actualizada a Raspbian 10 Buster. Esta es la que utilizo normalmente como VPN, y otros serie de servicios que utilizo con frecuencia. Esta Raspberry está en una caja con ventilación mecánica. Y la temperatura está constantemente en torno a los 45 ºC. Al realizar la prueba llegó hasta los 58 ºC. Indicarte que ya a partir de los 50 ºC en algunos casos entró en throttling, cayendo la frecuencia del procesador.
- En el caso de la Raspberry Pi 3 que utilizo para el cluster se llega a casi los 65 ºC, y evidentemente se experimentan casos de throttling. En condiciones normales, este equipo está en torno a los 55 ºC como puedes ver en la gráfica que muestro a continuación. Indicar que los dos valles que puedes apreciar, son dos momentos en los que puse en marcha el aire acondicionado, y que como ves representa una bajada de la temperatura de unos 3 grados centígrados aproximadamente.
Por un lado me he planteado si el ventilador tiene que trabajar impulsando o extrayendo aire, y esto evidentemente se resuelve mediante una prueba, y de esta forma es fácil llegar a la conclusión que la mejor solución es impulsando aire hacia el procesador, y se aprecia una disminución de la temperatura de casi un par de grados centígrados.
Sin embargo, llegado a este punto me planteo la necesidad de utilizar caja con ventilador o directamente no utilizar nada, porque lo cierto es que la Raspberry, que estaba en el exterior, está en mejores condiciones que la que tengo en casa.
Monitorizar la temperatura en la Raspberry Pi 4
Seguramente ya sabes que han liberado un firmware que reduce la temperatura de la placa. Se trata de un firmware para el adaptador del USB 3, que consigue reducir el consumo de la placa en unos 300 mW, y esto redunda en una disminución de la temperatura.
Si estás interesado, puedes descargarlo desde el enlace del firmware para reducir el consumo de la Raspberry Pi 4.
Se trata de un archivo zip, que contiene el firmware actual, junto con el nuevo, así como un script para aplicar tanto uno como otro firmware. La idea es que una vez aplicado el nuevo firmware en caso de que quieras volver al original siempre tengas la posibilidad. En este sentido, el contenido es el que puedes ver a continuación,
vl805
es el script que te permite aplicar el firmarevl805_fw_013701.bin
el firmware actualvl805_fw_0137a8.bin
el firmware que aplica la corrección
Para ejecutar el script necesitas permisos de administrador. Indicarte que si lo haces sin indicar ningún argumento te indicará la versión del firmware que actualmente estás ejecutando en tu Raspberry Pi 4.
Así, para aplicar el firmware simplemente tienes que ejecutar la siguiente instrucción
Y posteriormente reiniciar la Raspberry con sudo reboot now
.
En el caso de que quisieras dejar el firmware original, tan solo tienes que ejecutar las siguientes instrucciones,
sudo ./vl805 -w vl805_fw_013701.bin
sudo reboot
¿Cual es el resultado de aplicar este firmware? Pues se produce una reducción de la temperatura de los 70 ºC aproximadamente a los 67 ºC. Todo esto teniendo en cuenta que la temperatura ambiente es de unos 27 ó 28 ºC.
Y es que la disminución mas importante de temperatura ha sido al poner el aire acondicionado en casa, que la Raspberry se encontraba como una reina. En estos casos ha bajado hasta llegar a los 60 ºC.
Por supuesto que todas estas mediciones se han realizado sin carga. Algo que no se va a corresponder con la realidad, porque en ese caso, vale la pena que la tengas en un cajón. En el caso de someterla a carga la cosa es que se alcanzan picos de casi 85 ºC, algo totalmente inadmisible.
Es evidente que esta placa necesita urgentemente una ventilación mecánica adecuada. Es mas, es completamente inadmisible que trabajes sin ventilación mecánica. Y llego mas allá todavía, y es que con temperaturas de 85 ºC se podrían producir hasta quemaduras.
En cualquier caso te recomiendo monitorizar la temperatura en la Raspberry, así como el resto de parámetros.
Más información