Un script Python pour suivre les fréquences, tension et température du SoC d'un Raspberry Pi

Chaud cacao !
Un script Python pour suivre les fréquences, tension et température du SoC d'un Raspberry Pi
Crédits : ra2studio/iStock/Thinkstock

La hausse de performances du Raspbery Pi 4 ne s'est pas faite sans impacts négatifs, notamment la température du SoC. Pour nos tests, nous avons développé un script Python permettant de la surveiller, ainsi que les fréquences. Nous le publions en open source.

Le Raspberry Pi 4 utilise un nouveau SoC, plus efficace et plus rapide. Cadencé jusqu'à 1,5 GHz, son intégration reste assez basique, notamment le refroidissement. 

En effet, la fondation ne propose aucun système de dissipation complémentaire ou d'éléments pour ajouter simplement un ventilateur. Pourtant, la chaleur dégagée par sa nouvelle carte est importante, tout comme la température relevée au sein du boîtier officiel lorsqu'il est fermé, même au repos.

Des choix critiqués, d'autant que l'équipe communique allègrement sur les performances en hausse de la bête, qui correspondent à un cas idéal où le SoC n'atteint pas ses limites de chaleur. C'est pourtant rapidement le cas. La fondation a promis des améliorations via le firmware pour réduire la consommation de sa puce, et donc son échauffement. Une promesse qu'il faudra vérifier.

Nous avons donc développé un petit script pour suivre l'évolution de quelques informations du SoC dans le temps.

Notre script Python

Il utilise vcgencmd qui permet de relever des valeurs ou des éléments de configuration du Raspberry Pi. Vous pouvez obtenir la liste des commandes pouvant être utilisées en tapant cette ligne dans un terminal :

vcgencmd commands

Nous avons utilisé Python, présent nativement au sein de Raspbian, permettant facilement de manipuler des données et des fichiers CSV. L'objectif est en effet de garder un historique des valeurs sur une période donnée. Nous pourrons ainsi les exploiter dans un graphique si nécessaire.

Le script est simple, définissant un délai en secondes entre chaque relevé (2 par défaut) puis le nom du fichier à utiliser. Le compteur est ensuite initialisé à 0. Une première méthode permet l'écriture de valeurs dans le fichiers CSV sous forme de lignes ajoutées les unes aux autres. Une autre permet l'extraction d'une valeur flottante depuis un texte. C'est nécessaire puisque vcgencmd ne renvoie pas seulement la valeur demandée.

Une fois toutes ces méthodes définies, on passe à l'affichage du résultat et à l'écriture du fichier CSV. Celui-ci est initialisé avec un en-tête comprenant le nom des différentes valeus relevées, ce qui aide à sa comprehension. On attend ensuite le délai demandé.

Pour lancer, vous pouvez utiliser la commande suivante :

wget -qO- https://gist.github.com/davlgd/07f6288e869519acb695774e146a20b6/raw/09be19d5e96a627a33f444ea8db511245066dc7e/pi_soc_monitor.py | python

Près de 70 °C au repos avec le boîtier officiel

Lors de nos relevés, nous avons utilisé un Raspberry Pi 4 Model B équipé de 4 Go de mémoire, connecté à un écran (sans 4Kp60) et un clavier/souris. Bluetooth et Wi-Fi étaient désactivés, au profit de la seule connexion réseau filaire. Boîtier fermé, le SoC se stabilise entre 66 et 68°C au repos, contre 62 à 64°C boîtier ouvert dans une pièce à 24°C.

La puce est chaude au toucher, confirmant que ce n'est pas une erreur logicielle. Sa fréquence est alors bien de 600 MHz (Core) et 250 MHz (ARM), contre 1 500/500 MHz en charge. Seule sa tension ne bouge pas et reste à 0,85 V, contre 1,20/1,34 V pour le SoC d'un Raspberry Pi 3B+. 

Dès que l'on sollicite l'ensemble des cœurs, on atteint vite une température limite à un peu plus de 80°C. Une sécurité s'enclenche alors, limitant la fréquence de fonctionnement à 1 GHz, avec un impact important sur les performances. On voit très nettement cette zone dans nos relevés, et la conséquence sur un simple test OpenSSL :

openssl speed --multi $(nproc) rsa4096

Signatures RSA 4096 bits par seconde :

  • 4B à 1,5 GHz : 38
  • 4B à 1,0 GHz : 31 (-18 %)
  • 3B+ : 21

Vérifications RSA 4096 bits par seconde :

  • 4B à 1,5 GHz : 2 593
  • 4B à 1,0 GHz : 1 750 (- 32 %)
  • 3B+ : 1 444

Chaque test d'une vingtaine de secondes suffit à faire prendre 10°C au SoC du Pi 4, jusqu'à ce que sa température limite soit atteinte. Ce même phénomène ne s'observe pas sur un Raspberry Pi 3B+ dont la température au repos se situe entre 53/54°C, contre 77°C même après une dizaine de tests. On retombe rapidement à moins de 60°C.

Nous reviendrons dans un prochain article sur les solutions qui peuvent être mises en place pour améliorer la situation, en attendant des évolutions proposées directement par la fondation.

Températures Raspberry Pi 4 Model B ReposTempératures Raspberry Pi 4 Model B ChargeTempératures Raspberry Pi 3 Model B+ Charge
Le Raspberry Pi 4 Model B au repos puis en charge puis le Raspberry Pi 3 B+ en charge

Ce contenu est en accès libre

Il a été produit grâce à nos abonnés, l'abonnement finance le travail de notre équipe de journalistes.

ou choisissez l'une de nos offres d'abonnement :

30 commentaires
Avatar de SLV17 Abonné
Avatar de SLV17SLV17- 30/07/19 à 07:19:46

C’est le véritable problème du pi 4. J’en possède 2 qui sont presque inexploitables malheureusement... J’attends avec impatience cette mise a jour du firmware en espérant qu’elle sorte vraiment mais j’ai bien peur que l’on soit obligé d’attendre une version 4B+ car il semblerait que ce problème soit purement matériel

Avatar de XMalek Abonné
Avatar de XMalekXMalek- 30/07/19 à 07:23:19

Ca me rapelle le PI premier du nom qui avait aussi des problèmes de surchauffe, un petit radiateur de vrm dessus et hop c'était résolu.

Édité par XMalek le 30/07/2019 à 07:23
Avatar de framasky Abonné
Avatar de framaskyframasky- 30/07/19 à 07:28:10

@SLV17, le nouveau firmware est en alpha, et on peut déjà le choper. J’ai fait une fiche sur mon wiki : https://wiki.fiat-tux.fr/admin:systeme:maj-firmware-raspberrypi4

J’attends avec impatience la livraison d’un ventilateur que j’ai commandé : https://shop.pimoroni.com/products/fan-shim Ça devrait faire du bien au pi :-)

Avatar de David_L Équipe
Avatar de David_LDavid_L- 30/07/19 à 07:34:00

(quote:42822:framasky) ...

Oui avec le ventilateur on règle le souci, mais le problème de fond c'est que le boîtier officiel n'est pas prévu pour ça (on en reparle bientôt plus en détails :p). Gare quand même aux firmwares alpha sur lesquels ont sait peu de choses, hors pour des cas de tests. Sinon autant attendre la release officielle.

Édité par David_L le 30/07/2019 à 07:34
Avatar de Charly32 Abonné
Avatar de Charly32Charly32- 30/07/19 à 07:37:58

(quote:42823:David_L) Oui avec le ventilateur on règle le souci, mais le problème de fond c'est que le boîtier officiel n'est pas prévu pour ça

Ah ? J'ai toujours considéré que le RPi était conçu pour pendouiller nu au bout de son câble USB :transpi:

Avatar de David_L Équipe
Avatar de David_LDavid_L- 30/07/19 à 07:38:52

(quote:42824:Charly32) ...

Tu peux faire tout ce que tu veux et l'habiller comme tu veux. Mais dans tous les cas, que la simple installation dans le boîtier officiel implique une surchauffe rapide est un problème :D

Avatar de durthu Abonné
Avatar de durthudurthu- 30/07/19 à 08:23:00

Des tests sont ils prévus avec un boitier en métal de le prochain article ?

Avatar de Arona Abonné
Avatar de AronaArona- 30/07/19 à 08:24:57

Ils ont intégré le mode Uber de chez AMD par défaut tout simplement. :D

Avatar de piwi82 INpactien
Avatar de piwi82piwi82- 30/07/19 à 08:38:21

Le firmware va abaisser la fréquence maximale à 800MHz, comme ça on récupère les performances thermiques d'un Pi 3 B+ (ainsi que les performances en calcul...) :troll:

Avatar de LordZurp Abonné
Avatar de LordZurpLordZurp- 30/07/19 à 09:03:07

je prêche un peu pour la concurrence, mais il y a un plugin pour domoticz qui permet de suivre les metrics du PI : https://github.com/Xorfor/Domoticz-PiMonitor-Plugin

(je l'ai découvert que le mois dernier :transpi: )

Il n'est plus possible de commenter cette actualité.
Page 1 / 3

Votre commentaire

Avatar de lecteur anonyme
Avatar de lecteur anonyme

2000 - 2019 INpact MediaGroup - SARL de presse, membre du SPIIL. N° de CPPAP 0321 Z 92244.

Marque déposée. Tous droits réservés. Mentions légales et contact