TCO RPi2

TCO Késako ?

En informatique (au moins) on utilise l'acronyme TCO (Total Cost of Ownership) pour déterminer "combien ça coûte à l'utilisation". Une Raspberry Pi Zero 2W (RPi2) c'est tout petit, ce n'est pas puissant. Toutefois on a vu que l'on pouvait bien s'amuser avec ce petit bout d'ordinateur :

Tout cela est bien joli, mais quid de la facture électrique en ces temps de pénurie énergétique ? Combien coûte la RPi2 enexploitation ?

Outil de mesure

Sur Taobao (on trouve la même chose sur AliExpress) on peut acquérir un wattmeter pour les ports USB. Ce n'est pas un outil de mesure de laboratoire, on prendra les chiffres lus avec une pincée de sel, mais en attendant cela va nous donner une indication.

Dans le "TCO" de la RPi2W, on ne va rien garder de l'espace requis (on n'a pas besoin d'une salle serveur), du coût indirect de la climatisation (on n'a pas de salle serveur climatisée), du coût de la SDCard, non rien de rien. On part du principe que le seul coût de la RPi2W durant son exploitation, c'est le coût de la consommation électrique (on ne compte même pas le coût du câble USB).

Partant de ce principe, avec le wattmeter, on va calculer combien coûte en énergie la cartounette.

Combien coûte 1kWh en France en 2022 ?

Ce n'est pour moi pas facile de le savoir, mais de nombreux sites indiquent 0.1740€ pour 1kWh (un kilo watt heure, mille watts pendant une heure). Je ne rentre pas dans les détails de type d'abonnement ni dans les frais d'abonnements (a priori on est abonné). Dans les calcul suivants on restera sur cette valeur.

Combien coûte l'exploitation de la Raspberry ?

Avec notre appareil de mesure, voilà la consommation électrique durant une semaine (168 heures). On passe outre les huit minutes et 56 secondes de plus. Sans connaître la précision de l'appareil de mesures, nous ne sommes pas à un arrondi de plus ou de moins.

La Orange Pi Zero 2W a consommé l'équivalent de 108Wh durant cette période. En multipliant la consommation par 52 semaines, cela nous fait : 108*52 = 5616Wh ou 5.616kWh.

En multipliant la consommation par le tarif on obtient le tarif pour une année : 5.616 * 0.174 = 0.98€

Nous avons notre réponse : 1€ par an en la laissant H24 allumée, en tant que player audio et avec deux coeurs actifs et une fréquence baissée à 400MHz.

Autre information : on peut ne laisser qu'un 1 coeur actif et cela fonctionne correctement mais ce n'est pas mieux d'un point de vue consommation. Une copie d'écran de bpytop avec 1 seul coeur :

  • Il ne reste plus qu'un coeur actif sur la Raspberry qui tourne entre 400 et 600MHz

  • le process squeezelite prend environ 5% de CPU

  • les autres tâches sont essentiellement docker et le monitoring de la carte (kworker et le trio prometheus, cadvisor, node_exporter)

  • un fichier 24 bits est en cours de lecture pendant la copie d'écran

  • la tâche qui consomme le plus de CPU (18.9%) est bpytop qui nous montre les informations et qui n'a pas d'utilité pendant la lecture audio

C'est comment qu'on freine ?

Pour rappel, désactiver les coeurs et / ou downclocker la Raspberry, ça se passe dans le dossier boot de la petite carte.

On peut éditer le fichier avec nano ou utiliser le plugin SSH FS (SSH File System) de Visual Studio Code (je m'incline, c'est Microsoft et c'est l'outil le plus merveilleux). Il faut modifier le fichier cmdline.txt et indiquer "maxcpus=x" avec x pour le nombre de coeur que vous voulez activer.

Et pour downclocker, on va dans le fichier config.txt pour activer et modifier un paramètre.

Mon lecteur audio tourne depuis deux semaines à 400MHz.

Dans les faits, la fréquence est comprise entre 400 et 600MHz, le système gère dynamiquement la fréquence en fonction des besoins.

La commande suivante permet de connaître la fréquence du CPU :

vcgencmd measure_clock arm

Dans la copie d'écran, on voit le CPU évoluer entre 400MHz et 600MHz en passant par 500MHz.

Un, deux ou quatre coeurs ?

Dans le cas d'usage qui nous intéresse, à savoir un Docker hébergeant le lecteur audio squeezelite plus une stack de monitoring, la consommation est de 0.6Wh pour deux coeurs et 0.8Wh pour un seul coeur :

  • un seul coeur consomme 35% de plus que deux coeurs pour les mêmes tâches.Donc, a priori, il n'y a aucun intérêt pour descendre à un seul coeur !

  • la température passe de 40° avec deux coeurs à 44° avec un seul coeur : le pauvre chouchou qui reste, il chauffe tout seul !

Ha oué, mais avec trois coeurs ? Et avec quatre coeurs ? Bon, je n'ai pas effectué de tests avec seulement trois coeurs (ce n'est pas un multiple de deux, ça me fait mal au coeur). Par contre voilà ce que l'on constate avec quatre coeurs actifs : La consommation est de 0.7Wh ! On récapitule :

  • Un coeur = 0.8Wh

  • Deux coeurs = 0.6Wh

  • Quatre coeurs = 0.7Wh

Cela dans notre cas d'usage et en descendant la fréquence à 400MHz.

Rendement énergétique

A priori ARM propose un architecture avec un rendement énergétique plus élevé que l'architecture AMD64. Le rendement énergétique, c'est le calcul divisé par la consommation.

La finesse de gravure joue aussi un rôle prépondérant dans le rendement. Plus on grave fin, moins la consommation électrique est élevée. Les puces d'Apple M1 et M2 en architecture ARM sont gravées par TSMC en 5nm (nano mètres) et une puce Intel type 17-12700k est gravée en 10nm. Le M1 n'a pas de ventilateur et ne chauffe pas, le 12700k a un TDP125W : il va falloir ventiler, sauf mesures spéciales.

Avec une architecture moins gourmande et une finesse de gravure de taille inférieure, Apple a gagné le cocotier.

Le plus drôle, c'est que Qualcomm : comme quatre ans plus tô, encore une fois, l'entreprise promet de faire tourner Windows sur de l'ARM, ce coup-ci en novembre 2022, avec Oryon.

Qualcomm, quand tu étais seul à faire de l'ARM pour du desktop et que les machines étaient pourries, on s'en foutait. Mais désormais Apple a prouvé que l'on pouvait faire tourner un système grand public sur de l'ARM. Alors, Qualcomm, ton incompétence, elle se voit de trop aujourd'hui. Sans compter que, vraiment, on s'en fiche de Windows sur ARM : que ce truc de merde reste sur des processeurs qui consomment leur race. On n'en a pas besoin sur ARM, on a déjà Mac OS si on veut une prison dorée et Linux si on veut la liberté. Linux est aussi présent sur l'architecture Risc-V et Apple y pense sérieusement à Risc-V, pour le futur de ses puces. Est-ce que Windows a un intérêt à tourner sur Risc-V ? Zindoze, c'est pas comme Doom, ça ne tourne pas partout.

Conclusion

Conclusion audiophile : "La fréquence et le nombre de coeurs influence largement la qualité de restitution audio. En effet, plus on a de coeurs plus la scène sonore est large. Un seul coeur par contre offre plus de précision dans le respects des timbres, les artistes sont plus enjoués et on discerne mieux l'espace entre les instruments. Le meilleur compromis étant deux coeurs, avec une restitution d'un fruité supérieur, un soupçon moins analytique tendance stérile".

Blague à part, pour faire un lecteur audio champion du monde de la consommation, la Raspberry Pi Zero 2W est un bon candidat. On peut descendre la fréquence et supprimer deux coeurs. On conserve largement assez de puissance pour les fonctions logicielles dont on a besoin. Dans le fond c'est ça que l'on voulait mesurer, et Qualcomm c'est des nazes et on s'en balance, et Windoze c'est une caisse enregistreuse qui voudrait marcher partout - plus il y a de caisses, plus on fait du business - mais Qualcomm n'aide pas.