Commençons par un peu d’histoire :
- 2016: Construction d’un PC basse consommation sur Skylake – 10 watts en veille
- 2019: 9 watts en veille : création d’un NAS domestique à faible consommation d’énergie / serveur de fichiers avec 4 unités de stockage
- 2021: (pas d’écriture) – 11 watts avec un Intel i3-10320 sur un Gigabyte H470M DS3H
Tous mes systèmes n’ont pas connu le même succès. En 2022, j’ai mesuré quelques autres systèmes à 19 watts et 27 watts dans le cadre de l’étude Freiner les tendances au « Gas-Guzzling » de l’AMD Radeon avec le multi-moniteur . Bien que j’aie réussi à réduire la puissance de ce système AMD de 27 watts quelque temps plus tard, tous les combos CPU/carte mère ne sont pas destinés à atteindre les 10 watts.
—
Avant d’aller plus loin, le chiffre de 7 watts pour ce système était avant l’ajout de stockage. Les 7 watts (mesurés au mur) comprennent :
- Carte mère (Intel H770)
- Processeur (Intel i5-12400)
- 64 GO DE RAM
- SSD (démarrant Ubuntu Server 23.04)
- Bloc d’alimentation (Corsair)
- C-States configuré dans le BIOS pour atteindre C8
- powertop avec auto-tune (qui désactive le clavier USB lorsque le port se met en veille)
Notez que si je ne permets pas à powertop de désactiver le clavier, j’obtiens 8 watts mesurés au mur.
—
Entrons dans le détail des spécifications et des choix de composants. Cette fois-ci, j’avais les objectifs suivants:
- faible consommation au ralenti
- performances raisonnables du CPU pour la compression
- capacité à gérer 12 disques durs + au moins 1 NVMe
- capacité à convertir (éventuellement) ces 12 disques durs en 6 NVMe + 6 SSD SATA
- garder les coûts sous contrôle – puisqu’un achat de carte mère serait nécessaire, essayer de s’en tenir à la DDR4 et réutiliser un CPU que j’ai déjà.
Mettre en place un nouveau système avec l’espoir de se rapprocher des 10 watts *mesurés à partir du mur* est souvent non seulement un défi, mais aussi un peu un pari. Parfois, vous devez simplement prendre vos meilleures suppositions en termes de composants, construire votre système, régler ce que vous pouvez, et laisser les copeaux tomber où ils peuvent.
Carte mère – ASUS Prime H770-Plus D4
Avant de commencer, voici un aperçu de la disposition de la carte mère. Les slots VERT connectés au CPU et les slots ORANGE connectés au chipset deviendront pertinents tout au long de cet article.
Au moment de la rédaction de cet article, les options grand public largement disponibles étaient les cartes mères des séries Intel 600/700 et AMD 500/600.
L’un de mes objectifs était de pouvoir accueillir 6 disques NVMe.
Nous allons voir plus en détail pourquoi cela peut être un défi (n’hésitez pas à sauter cette section)…
Problème : Il n’existe aucune carte mère grand public dotée de 6x emplacements M.2 pouvant être utilisés simultanément en mode PCIe. Chez AMD, la MEG X570S Unify-X Max en a l’air, mais vérifiez le manuel et vous verrez que si vous essayez de remplir les 6 emplacements, le dernier doit être une variante SATA. Le Z790 PG Sonic d’ASRock dispose également de 6 slots, mais vous ne pouvez en utiliser que 5 (avec une excuse légitime : ils proposent un slot NVMe Gen5, mais il est accompagné d’une clause restrictive).
Pourquoi ce problème existe-t-il? : Il y a des limitations de voies de chipset sur les cartes grand public. En supposant que je veuille pouvoir utiliser tous les M.2 en Gen4x4 et qu’un fabricant soit réellement disposé à consacrer toutes les voies aux emplacements M.2 NVMe (ce n’est pas le cas), l’AMD X570 et l’Intel B760 ne dépasseraient pas trois emplacements M.2, l’AMD B650 et l’Intel H670/Q670/Z690/W680 en gèreraient quatre. Cinq emplacements M.2 sont possibles sur les cartes AMD X670 et Intel H770. Six sur une carte Z790. Au-delà, il faudrait prendre des mesures extraordinaires, par exemple en privant de voies l’emplacement PCIE principal. Si le nombre de M.2 était souhaité, les fabricants pourraient théoriquement utiliser des voies en Gen4x2 ou ajouter des emplacements M.2 Gen3, mais à ce stade, ils ont créé un produit *très* de niche.
La solution : Les adaptateurs PCI-E vers M.2 sont devenus nécessaires. Désormais, lors de la recherche d’une carte mère, il s’agissait d’ajouter les emplacements M.2 inclus à tous les emplacements PCI-E disponibles capables de x4 ou plus. Mes options se limitaient alors aux cartes mères AMD X570, Intel H770 et Intel Z790. Notez que bien que l’utilisation de la bifurcation soit possible sur certaines cartes mères pour obtenir plus d’un NVMe sur l’emplacement PCIe principal, j’ai décidé de ne pas m’y fier.
J’ai décidé d’opter pour Intel pour plusieurs raisons :
- TDP du chipset : les chipsets Intel des séries 600/700 ont tous un TDP de 6W, alors que le TDP du chipset AMD X670 est assez élevé (7w+7w). La consommation d’énergie des chipsets AMD me préoccupe depuis un certain temps, car les chipsets X570 précédents avaient un TDP de 11w et nécessitaient un ventilateur.
- Vitesse du chipset : Les chipsets Intel H670/Q670/W680/Z690/H770/Z790 ont un lien DMI 4.0 x8 avec le CPU. Les chipsets AMD X570/B650/X670 ont une liaison PCIe 4.0 x4 avec le processeur. Le débit théorique d’Intel devrait être deux fois plus élevé que celui d’AMD (16GB/s contre 8GB/s).
- J’avais déjà 64 Go de DDR4 que le système Intel pouvait utiliser. Les chipsets AMD de la série 600 n’utilisent que de la DDR5.
- J’avais déjà un processeur Intel 12ème génération.
- Je n’ai pas encore vu de discussion positive sur la consommation d’énergie de l’AM5. Pas du tout. Mise à jour : au moment où j’écrivais ces lignes, des informations ont été publiées sur des CPU de la série 7000 d’AMD qui brûlaient à l’endroit où les broches du socket de la carte mère rejoignaient le CPU. Oui, désolé AMD, pas cette fois.
C’est donc Intel qui a été choisi. Après avoir vérifié les cartes mères DDR4 disponibles sur le marché, j’ai rapidement réduit les options à 2 fabricants : MSI et ASUS.
Vous ne vous souciez pas des comparaisons entre les tableaux ? N’hésitez pas à passer votre chemin.
Les cartes MSI les plus intéressantes sont les PRO Z790-P WIFI DDR4 et Z790-A WIFI DDR4. Presque identiques en apparence, sauf que le « A » est un peu plus haut de gamme (audio, ports arrière, dissipateurs, phases d’alimentation, etc). Avantages/inconvénients :
- Pro : 4x M.2 (Gen4x4) + 1x PCIE Gen5x16 + 1x PCIE Gen4x4 supporte un total de 6 Gen4 NVMe
- Pro : 2x PCIE Gen3x1 supplémentaires
- Pro : 6 ports SATA
- Inconvénient : Intel 2.5G LAN (connu pour être problématique et bogué)
- Inconvénient : je ne suis pas un fan du BIOS MSI
- Inconvénient : ma carte B660 actuelle, qui consomme plus que prévu au ralenti, est une MSI.
Les options ASUS intéressantes étaient le Prime H770-Plus D4 et le Prime Z790-P D4 (édition WIFI en option). Les TUF, Strix, ou ProArt étaient tout simplement trop chers.
Je vais commencer par lister les avantages et inconvénients du H770-Plus :
- Pro : 3x M.2 (Gen4x4) + 1x PCIE Gen5x16 + 2x PCIE Gen4x4 supporte un total de 6 NVMe Gen4
- Pro : 2 PCIE Gen3x1 supplémentaires
- Inconvénient : seulement 4 ports SATA
- Pro : Adaptateur réseau Realtek 2.5G (préférable au LAN Intel 2.5G de nos jours)
Le Z790-P D4 est similaire sauf qu’il a plus de phases d’alimentation, un meilleur dissipateur thermique, plus de ports USB, une tête de ventilateur supplémentaire, et pour nos besoins… :
- +1 PCIE Gen4x4
- -1 PCIE Gen3x1
Finalement, le ASUS Prime H770-Plus D4 était 100$ moins cher à l’époque et c’est ce que j’ai choisi.
Un avantage que j’ai trouvé avec les cartes « moins chères » est qu’elles ont tendance à avoir moins de composants et donc moins de consommation d’énergie vampire au ralenti, bien que ce ne soit pas toujours une certitude.
CPU – Intel i5-12400 (H0 stepping) – Alder Lake
J’avais déjà ce processeur dans le cadre d’une précédente construction d’ordinateur de bureau. À l’époque, il avait été choisi pour le système de bureau pour les raisons suivantes :
- il avait le décodage matériel AV1
- il avait la plus haute performance disponible de la gamme Intel de la 12ème génération qui évite l’overhead du silicium E-core
- dans cette configuration, j’allais recevoir une nouvelle carte mère avec 2xDP de toute façon, et choisir une génération plus ancienne n’avait pas de sens pour moi.
Cet ordinateur de bureau s’est avéré être une déception, et se classe parmi mes constructions préférées.
Quelques détails…
J’ai eu des problèmes où parfois seulement 1 des 2 moniteurs DP connectés se réveillait sous Linux, ce qui signifiait que je devais soit retirer/reconnecter l’autre connecteur DP, soit suspendre/reprendre manuellement le système pour qu’il puisse réessayer.
Un autre problème était que le redémarrage entre Windows/Linux provoquait parfois des problèmes étranges qui nécessitaient une extinction/redémarrage complet.
Le décodage matériel sous Ubuntu à l’aide de Wayland est toujours problématique et lorsque des programmes essayaient de l’utiliser pour lire des vidéos, des problèmes survenaient.
Enfin, contrairement à mes systèmes Intel précédents qui pouvaient tous être ramenés à près de 10 watts, celui-ci tournait au ralenti à 19 watts, bien que je soupçonne la carte mère MSI que j’utilisais d’avoir joué un rôle.
La plupart des maux de tête que j’ai rencontrés étaient liés au GPU et à l’affichage. Comme j’étais sur le point de construire quelque chose d’orienté serveur, ce n’était plus un facteur.
MÉMOIRE – 64GB DDR4-3200
Voici ce que j’ai utilisé :
- 2x16GB Kingston HyperX dual-rank (Hynix DJR)
- 2x16GB Kingston HyperX single-rank (Hynix CJR)
C’est de la mémoire que j’avais déjà. J’ai fait fonctionner les 4 barrettes de mémoire au profil XMP du kit dual-rank, soit 16-18-18-36. Tout le reste a été laissé aux valeurs par défaut, sauf que j’ai fait fonctionner la RAM à 1,25 volt (plus élevé que le 1,20 du stock, mais plus bas que le réglage XMP de 1,35v). TestMem5 et Memtest86 ont montré une stabilité à 1,22v, bien que les tests de cette mémoire sur les cartes mères précédentes aient montré que 1,22v était instable, donc pour un peu plus de stabilité, j’ai augmenté la tension à 1,25v.
Disque de démarrage – Sandisk Ultra 3D 1TB SSD
TCe composant n’a pas été choisi délibérément. Lorsque j’ai voulu installer un serveur Ubuntu frais pour les tests, il s’est avéré que c’était le seul disque SSD que j’avais à portée de main et qui n’était pas utilisé. J’allais faire beaucoup de tests A/B sur des périphériques PCIE et NVMe, donc installer Ubuntu 23.04 sur un SSD SATA était logique pour garder les slots PCIE libres.
Notez qu’après les tests, le système d’exploitation principal devait être exécuté sur un Samsung SSD 970 EVO Plus 500GB NVMe. Il n’y a pas grand-chose à dire, si ce n’est que les produits Samsung ont tendance à se mettre en mode basse consommation de manière fiable.
Ayant utilisé les deux disques, je n’ai pu mesurer aucune différence de puissance entre eux lors de mes tests. Tom’s Hardware a testé le Samsung en mode ralenti à 0,072 watts (via ASPM/APST), et Anandtech a testé le Sandisk Ultra 3D en mode ralenti à 0,056 watts (via ALPM). Les deux sont bien en dessous de la résolution de 1W de mon compteur Kill-A-Watt.
Bloc d’alimentation – Corsair RM750
Même si ce bloc d’alimentation de 750W peut sembler excessif pour un système destiné à tourner autour de 10 watts, lorsque 12 moteurs de disques tournent en même temps, la charge instantanée est susceptible d’être assez élevée. Seagate indique des courants de pointe de 2A/3A DC/AC sur le rail 12V pour l’un de ses disques 3,5″ de 10 To. Même les lectures/écritures aléatoires de pointe peuvent atteindre plus de 2A.
Cette demande de puissance en rafale peut être problématique si le bloc d’alimentation n’est pas à la hauteur de la tâche. Si une matrice de 6 disques durs consomme collectivement 150-200 watts au moment même où le CPU atteint un pic de 120 watts, on passe d’une dizaine de watts au repos à environ 400 watts. Cela peut facilement provoquer une chute de tension instantanée – si elle est suffisante pour provoquer un plantage/redémarrage immédiat, ce n’est probablement pas grave, mais si elle est suffisante pour corrompre les données lors d’un rafraîchissement de la mémoire ou lorsqu’un autre disque est en cours d’écriture… c’est un problème plus douloureux. Surdimensionner le bloc d’alimentation dans une certaine mesure (ou ajouter des condensateurs en ligne sur les rails d’alimentation) est logique.
Heureusement, bien que fonctionnant en dehors de la plage d’efficacité maximale, la plupart des Corsair RM sont assez efficaces sur une large plage.
Mesures de puissance – Initiales
Quelques éléments importants :
- Puissance mesurée à partir du mur
- Intel PowerTOP a été utilisé pour l’auto-ajustement des paramètres
- Serveur Ubuntu 23.04
Quelques éléments du BIOS potentiellement importants :
- Les états C du CPU ont été activés dans le BIOS (C10)
- ASPM a été activé avec tout réglé sur L1
- RC6 (Render Standby) activé
- Support LPM agressif activé (ALPM)
- DISABLED : HD Audio, Connectivity Mode, LEDs, GNA Device, Serial Port
9-10 watts était la consommation lorsque l’écran était allumé.
7 watts était la consommation une fois l’écran éteint (consoleblank=600 paramètre de démarrage du noyau pour une temporisation de 600s), ce qui est le cas de ce système la majeure partie de la semaine.
8 watts était la consommation si la gestion de l’alimentation du clavier USB était désactivée. Si vous ne vous connectez pas au serveur par SSH depuis un autre endroit, il peut être nécessaire de dépenser le watt supplémentaire pour l’utilisation du clavier.
Mesures de puissance problématiques – Chargé avec de la rouille qui tourne (qui ne tourne pas)
Comme indiqué au début, j’ai commencé avec 12 disques durs. La moitié était de 2,5″ et l’autre de 3,5″. La carte mère ne disposant que de 4 ports SATA, un contrôleur SATA et un multiplicateur de port ont été utilisés pour gérer les disques restants. De plus, 4 disques NVMe ont été utilisés au début : l’un d’entre eux, un Western Digital SN770, avait tendance à chauffer même au ralenti, ce qui indique qu’il ne passait probablement pas en mode basse consommation.
Avec tout l’équipement connecté, au ralenti, avec l’écran éteint, et avec les 12 disques en veille, j’ai été choqué de voir que ma consommation d’énergie au ralenti était passée de 7 watts à 24-25 watts. C’est beaucoup trop ! Quelque chose ne tournait pas rond.
Casse-tête de la consommation d’énergie – Investigation et diagnostic de la haute puissance
J’ai déconnecté les disques durs et j’ai commencé à tester les composants un par un. Il s’agissait de tests assez rudimentaires destinés à se faire une idée approximative du coupable, de sorte que les chiffres indiqués ici ne sont pas précis.
J’ai rapidement découvert que le contrôleur SATA JMB585 que j’utilisais provoquait une augmentation de la consommation d’énergie de l’ordre de 6 à 10 watts (les mesures précises sont présentées dans une section ultérieure). Le contrôleur lui-même n’est censé consommer que quelques watts, et le minuscule dissipateur thermique est resté froid, mais il est évident qu’il se passait plus de choses. Où allait la puissance ?
J’ai décidé d’observer les états C du paquet CPU. Sans le contrôleur SATA JMB585, le système a atteint C6. Lorsque le JMB585 a été reconnecté, le système a atteint au mieux C3. Ah ha ! mais pourquoi ? Il s’avère que si un périphérique connecté au PCIE ne passe pas en ASPM L1, le CPU ne passe pas en sommeil aussi profond. Les cartes contrôleur JMB585 ne semblent pas supporter l’ASPM.
Un peu plus d’expérimentation a révélé quelque chose d’autre que je ne savais pas, et cela a à voir avec C6 vs C8. Le système n’atteindra C8 que si rien n’est branché sur les voies PCIE connectées au processeur. En d’autres termes, si quoi que ce soit est branché sur l’emplacement PCIE supérieur ou sur l’emplacement NVMe supérieur, C6 est le maximum. La différence de consommation d’énergie entre C6 et C8 *a semblé* être inférieure à un watt lors d’un simple test.
Ainsi, alors que C8 serait un luxe, atteindre C6 était une nécessité. C3 consomme trop d’énergie. Si les contrôleurs SATA allaient empêcher le CPU d’atteindre les meilleurs états d’économie d’énergie, j’ai commencé à me demander si je n’aurais pas dû chercher une carte mère avec 6-8 ports SATA afin de ne pas avoir à compter sur des contrôleurs supplémentaires…
Une petite recherche sur les HBAs SATA a montré que bien qu’il n’y ait pas beaucoup d’options ici, le contrôleur SATA ASM1166 devrait supporter ASPM L1, bien que le firmware doive être flashé pour qu’il fonctionne correctement (et pour qu’il fonctionne du tout sur les cartes Intel plus récentes). C’est quelque chose que je devais commander : J’ai des pièces de rechange Marvel et JMicron, mais elles ne supportent pas l’ASPM. En fait, j’ai évité ASMedia pendant des années, mais par nécessité, ils avaient maintenant une nouvelle chance : J’ai commandé deux contrôleurs ASM1166 6 ports SATA.
A côté : BadTLP, Bad ! Erreurs de bus AER sur le pcieport
Cela vaut la peine d’être mentionné… Lors des tests initiaux avec un WD Black SN770 (Gen4 NVMe), j’ai constaté un problème lorsque les ports PCIE et NVMe primaires (attachés au processeur supérieur) étaient utilisés. En exécutant dmesg, j’ai obtenu une sortie contenant des éléments tels que :
pcieport 0000:00:06.0: AER: Corrected error received: 0000:02:00.0
nvme 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, (Receiver ID)
pcieport 0000:00:06.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Transmitter ID)
pcieport 0000:00:06.0: AER: Error of this Agent is reported first
nvme 0000:02:00.0: [ 6] BadTLP
…après de nombreux essais et erreurs, j’ai découvert que si le paramètre « PEG – ASPM » du BIOS était réglé sur [Disabled] ou [L0s], il n’y avait pas d’erreurs.
Bien sûr, il s’agit d’une mauvaise option, car [L1] est crucial pour les économies d’énergie. Si [L1] ou [L0sL1] étaient utilisés, la seule option était de régler la vitesse de liaison de ces ports sur [Gen3], ce qui n’a pas empêché les erreurs, mais les a considérablement réduites.
Des recherches ont montré que l’origine de ces erreurs pouvait être multiple. Comme le remplacement de la carte mère ou du CPU n’était pas une idée agréable, mon meilleur espoir était de changer de marque de NVMe.
J’ai commandé des disques Crucial P3 NVMe. Cette démarche s’est avérée fructueuse : une fois les disques WD remplacés par les disques Crucial, je n’ai plus eu d’erreurs, même s’il ne faut pas oublier qu’il s’agit de disques Gen3.
Casse-tête sur la consommation d’énergie – L1.1 et L1.2 activés uniquement sur les ports connectés au chipset
Lorsque j’ai installé les 2 disques Crucial P3 NVMe dans l’emplacement PCIEx16 connecté au CPU et dans l’emplacement M2 supérieur, j’ai remarqué des températures de ralenti plus élevées que prévu. Alors que la NAND était à environ 27-29C, les contrôleurs indiquaient 49-50C – beaucoup plus élevé que ce à quoi je m’attendais pour ces disques particuliers.
J’ai déplacé celui de l’emplacement PCIEx16 vers un emplacement PCIEx4 connecté au chipset. Une différence intéressante entre ces disques est apparue via lspci -vvv :
Emplacement M2 connecté au processeur : L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
Emplacement PCIE connecté au chipset : L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
Les sous-états L1 ne semblent être activés que sur les slots connectés au chipset. C’est regrettable, mais cela semble coïncider avec les paramètres BIOS disponibles dans la capture d’écran ci-dessus.
Reprenons l’image de la carte mère pour illustrer la situation :
J’ai placé les deux disques NVMe sur des emplacements PCIE connectés au chipset. Les deux disques affichent L1.1+/L1.2+ et la température des deux contrôleurs est passée de 49-50C à 38-41C.
Malheureusement, lorsque j’ai tenté divers tests A/B en utilisant ces deux disques NVMe Crucial avec différentes configurations d’emplacement et divers paramètres BIOS, j’ai constaté un comportement très incohérent en termes de température, bien qu’il soit intéressant de noter que le JMB585 et un disque de démarrage NVMe étaient également connectés pendant ces tests. Par exemple, les deux disques pouvaient tourner au ralenti à environ 40°C jusqu’à un redémarrage progressif, moment où l’un d’entre eux (ou les deux) pouvait maintenant tourner au ralenti à 50°C. Parfois, il semblait possible de garder un disque sur le M.2 connecté au processeur et de conserver des températures de 40°C sur les deux disques tant que l’emplacement x16 n’était pas occupé. Il est probable que j’ai rencontré une sorte de bug. Le Samsung boot NVMe semblait maintenir une température constante au repos indépendamment de ce qui se passait avec les disques Crucial NVMe, j’ai donc soupçonné les disques Crucial d’être au moins en partie responsables.
Il est intéressant de noter que la température de l’un des contrôleurs (ou des deux) descendait parfois jusqu’à 29°C sur les slots connectés au chipset. Étant donné qu’il n’était pas réaliste d’essayer de trouver un remplaçant NVMe de 4 To à faible consommation pour le Crucial P3, mon meilleur espoir à ce stade était que le JMicron JMB 585 incompatible avec l’ASPM était en quelque sorte à blâmer, puisqu’il allait bientôt être remplacé par l’ASMedia ASM 1166 compatible avec l’ASPM.
Mise à jour tardive : je n’ai malheureusement pas suivi les températures pendant le reste des tests, et les dissipateurs/flux d’air entre les disques ont été mélangés. Mais pour ce que ça vaut, dans la version finale, les températures de mon contrôleur Crucial P3 sont de 31-34C, et les températures NAND sont de 23-24C.
Puzzle sur la consommation d’énergie – Passage du JMB585 à l’ASM1166.
Après quelques semaines, l’ASM1166 est arrivé. Tout d’abord, quelques informations sur la carte qui pourraient vous être utiles si vous envisagez de l’utiliser…
J’ai commencé par un flash du firmware – les cartes ASM1166 ont souvent un vieux firmware qui ne fonctionne pas avec les cartes mères Intel de la série 600 et qui, d’après ce que j’ai compris, peut avoir des problèmes avec la gestion de l’énergie. Un firmware plus récent peut être trouvé à différents endroits, mais j’ai décidé de prendre une copie de SilverStone (« fix compatibility issue » dans la section Download de https://www.silverstonetek.com/en/product/info/expansion-cards/ECS06/) et j’ai suivi les instructions sur https://docs.phil-barker.com/posts/upgrading-ASM1166-firmware-for-unraid/ . Notez que les fichiers SilverStone avaient un MD5 identique au firmware que j’ai trouvé en suivant le fil de discussion à https://forums.unraid.net/topic/102010-recommended-controllers-for-unraid/page/8/#comment-1185707 .
Pour tous ceux qui prévoient d’acheter l’une de ces cartes ASMedia, je dois noter que, comme la plupart des contrôleurs SATA et des HBA, la qualité varie vraiment. L’une de mes cartes avait un dissipateur thermique qui était un peu de travers : le coussin thermique était suffisamment épais pour l’empêcher de court-circuiter les composants voisins, mais soyez conscient que ces produits peuvent être vraiment aléatoires. C’est l’une des situations où il peut être prudent de payer un peu plus cher pour acheter un produit auprès d’un fournisseur offrant une bonne politique de retour.
J’ai fait pas mal de tests A/B, voici donc un rapide « JMicron JMB585 vs ASMedia ASM1166 » en termes de consommation totale du système, bien qu’il ne puisse s’appliquer qu’à cette plateforme (ou peut-être même à cette carte mère spécifique).
SANS DRIVE
Tout d’abord, la consommation d’énergie sans aucun disque connecté aux cartes (le disque SSD SATA de démarrage est connecté à la carte mère) pour obtenir une base de référence. PowerTOP est utilisé sur tous les périphériques à l’exception du clavier (ajoutant +1 watt). Mesures après la mise en veille de l’écran.
- 8 watts – Pas de contrôleur SATA – état d’alimentation C8
- 9 watts – ASM1166 sur un emplacement x4 connecté au chipset – état d’alimentation C8
- 12 watts – JMB585 sur un emplacement x16 connecté au processeur – état d’alimentation C3
- 15 watts – JMB585 sur un emplacement x4 connecté au chipset – état d’alimentation C3
- 22 watts – ASM1166 sur un emplacement x16 connecté au processeur – état de puissance C2
L’ASM1166 s’en sort bien si elle est branchée sur un slot connecté au chipset (seulement +1 watt), mais elle s’en sort très mal si elle est connectée au slot PCI-E principal (+14 watts) où l’état d’alimentation du package CPU chute à C2. Chose étonnante, le JMB585 se comporte de manière opposée : sa consommation est plus faible sur le slot connecté au CPU (et il n’a pas provoqué de C2) – cependant, vous verrez bientôt que les choses changent lorsque les disques sont réellement connectés…
J’ai effectué d’autres tests avec les contrôleurs, notamment en jouant aux « chaises musicales » avec quelques disques NVMe pour voir si la présence de plusieurs périphériques pouvait perturber les choses, mais rien d’inattendu ne s’est produit, donc je ne vais pas entrer dans les détails.
LORSQUE LES DISQUES DURS SONT INSTALLÉS
Les mesures de base étant terminées, il était temps d’installer des disques sur ces contrôleurs. Le disque SSD SATA de démarrage est resté sur la carte mère, 2 disques NVMe ont été ajoutés au mélange (connectés au chipset sauf indication contraire), et 4 des disques durs SATA 2,5″ ont été placés sur le contrôleur. Je vais énumérer la consommation après que les disques durs ont été mis en veille – la consommation après la mise en veille était exactement 2 watts plus élevée dans chaque test alors que les disques étaient inactifs.
- 10 watts – ASM1166 sur un emplacement x4 connecté au chipset – état d’alimentation C8
- 11 watts – ASM1166 sur un emplacement x4 connecté au chipset avec 1 NVMe déplacé vers l’emplacement x16 connecté au CPU – état d’alimentation C6
- 11 watts – 2 ASM1166 sur des emplacements x4 connectés au chipset, avec seulement 1 lecteur NVMe – état d’alimentation C8
- 16 watts – JMB585 sur un emplacement x4 connecté à un chipset – état de puissance C3
- 24 watts – JMB585 sur un emplacement x16 connecté au CPU – état d’alimentation C2
Avec 4 disques connectés via un emplacement connecté au chipset, l’ASM1166 ajoute +2 watts à la consommation du système, tandis que le JMB585 ajoute +8 watts. Il n’y a pas photo.
Un autre avantage est que j’ai pu utiliser les deux cartes ASM1166 dans le système, alors qu’en essayant d’utiliser les deux cartes JMB575 en même temps, le système a refusé de démarrer, bien que cela puisse être un problème spécifique à la plateforme ou à la carte mère.
Il y a cependant un compromis à faire – j’ai toujours trouvé que la JMB585 était d’une fiabilité à toute épreuve, y compris lorsqu’elle était associée à un multiplicateur de port JMB575. Mon expérience passée avec les contrôleurs SATA ASMedia n’a pas été brillante : la fiabilité de l’ASM1166 reste à voir, mais c’est au moins un mauvais candidat pour un multiplicateur de port puisqu’il ne supporte pas le FBS (seulement le CBS).
Quelques autres problèmes mineurs qui se sont présentés avec l’ASM1166 :
- Lors du retrait/réinsertion du disque de démarrage NVMe, un message BIOS est apparu indiquant qu’il ne pouvait pas démarrer en raison d’une corruption GPT. Les cartes ASM1166 ont dû être temporairement retirées pour que le BIOS « trouve » à nouveau le lecteur de démarrage NVMe (après quoi elles ont pu être réinstallées).
- Les cartes ASM1166 prétendent avoir un *nombre* de ports – cela augmente le temps de démarrage car Linux doit les parcourir tous.
Puzzles sur la consommation d’énergie – Conclusion
Quelques points importants si l’on vise une faible consommation :
1) Le support de la carte mère et la configuration du BIOS sont critiques – j’ai eu des cartes mères avec des BIOS très inflexibles. Sur celle-ci, « Native ASPM » et les états L1 appropriés doivent être activés (pour permettre un contrôle par le système d’exploitation au lieu d’un contrôle par le BIOS) pour que la faible consommation d’énergie fonctionne.
2) Les périphériques doivent tous prendre en charge l’ASPM L1. Sinon, c’est un véritable coup de dés. La partie la plus difficile est de trouver des contrôleurs SATA qui le supportent – si possible, prenez une carte mère avec suffisamment de ports SATA connectés au chipset Intel pour éviter d’avoir besoin d’une carte séparée. Je dois noter qu’il n’est pas toujours facile de trouver des disques NVMe qui ont des états d’alimentation APST à faible consommation sous ASPM et vous devrez faire quelques recherches à ce sujet également.
3) Si vous pouvez atteindre l’état d’alimentation C8, évitez d’utiliser les voies PCIe connectées au CPU (PCIe supérieur et slot M2). Sur cette carte mère spécifique, mon conseil serait de ne pas les utiliser du tout si vous le pouvez, à moins que vous n’ayez besoin d’une bande passante complète à faible latence vers le CPU ou que vos périphériques soient si actifs qu’ils ne dorment jamais de toute façon. Rappelez-vous que mes deux cartes SATA JMicron et ASMedia ont fait chuter l’état C du CPU à C2 si elles étaient branchées dans l’emplacement PCI-E x16.
4) Mesurer la puissance à partir du mur est le seul moyen de s’assurer que ce que vous *pensez* être en train de se produire est réellement en train de se produire. Un appareil Kill-A-Watt s’amortit au fil du temps si vous l’utilisez – sachez que j’ai acheté le mien en 2006 (16 $USD + 14 $USD de frais de port à l’époque sur eBay). À l’époque, j’ai constaté que notre télécopieur, rarement utilisé et toujours allumé, consommait 7 watts… le simple fait de maintenir cet appareil éteint lorsqu’il n’est pas utilisé pendant les 10 années suivantes a largement suffi à payer le Kill-A-Watt.
Consommation électrique avec plusieurs disques durs
Maintenant que diverses pièces sont entrées et sorties du système tout au long de ce processus, la configuration actuelle est la suivante :
- 1x Samsung 970 EVO Plus NVMe (disque de démarrage de 500 Go)
- 2x Crucial P3 NVMe (4TB chacun)
- 5x Seagate 2.5″ HDD (5TB chacun – 4TB utilisé)
- 6x disques durs Seagate 3.5″ (10 To chacun – 8 To utilisés)
- 2x cartes ASM1166 fournissant des ports SATA
Puissance totale mesurée à partir du mur (écran allumé, clavier activé) :
- 50 watts avec les 11 disques durs en veille active
- 38 watts avec les 6 disques durs de 3,5 pouces en Idle_B
- 34 watts avec les 6 disques durs de 3,5 pouces en Idle_C
- 21 watts avec les 6 disques durs de 3,5 pouces en Standby_Z (essorage)
- 18 watts avec le disque dur 5x 2,5″ AUSSI en veille
- 16 watts avec la sortie d’affichage AUSSI éteinte
- 15 watts lorsque PowerTOP est autorisé à désactiver le clavier USB
Seagate estime la consommation en veille de ces disques de 3,5″ à environ 0,8w chacun, et celle des disques de 2,5″ à environ 0,18w chacun. Cela correspond à ce que je vois ci-dessus. Mes chiffres de consommation en veille active correspondent en fait assez bien aux spécifications de Seagate.
L’observation qui s’impose : par rapport au reste des composants du système, les disques durs de 3,5 pouces sont des monstres gourmands en énergie.
Les disques durs seront éventuellement remplacés par des disques SSD. Avec une consommation en veille aussi faible que celle des disques durs, il n’y a pas d’urgence majeure et ce processus se fera progressivement au fur et à mesure que mes disques durs/spares mourront et que les prix des disques SSD diminueront.
Le plan pour le « jeu final » est de construire un système entièrement basé sur des SSD. A l’origine, le plan prévoyait 1 disque de démarrage, 6xNVMe (probablement Crucial P3 4TB) pour une matrice RAIDZ2, et 6xSATA (probablement Samsung 870 QVO 8TB) pour la seconde matrice RAIDZ2. Comme l’utilisation des slots M2/PCIe connectés au CPU n’apporte pas seulement de l’imprévisibilité mais aussi un léger coût en termes d’état, de puissance et de température, je pourrais modifier ce plan et abandonner quelques NVMe dans la première matrice et utiliser SATA à la place afin de ne pas avoir à toucher aux lanes connectées au CPU. L’avenir nous le dira.
Détails inutiles sur le stockage
Cette partie ne vaut la peine d’être lue que si vous êtes intéressé par des détails méticuleux sur le stockage. Dans le cas contraire, n’hésitez pas à passer à la dernière section.
Lecteur de démarrage NVMe
Comme nous l’avons déjà mentionné, il s’agit d’un Samsung 970 EVO Plus. Actuellement, moins de 4 Go des 500 Go d’espace sont utilisés (une partition d’échange de 64 Go existe mais reste toujours à 0 utilisé). Ce disque a été choisi à l’origine parce que Samsung avait acquis une réputation de fiabilité (qui s’est affaiblie ces derniers temps), et Samsung a également obtenu de bons résultats dans les revues chaque fois qu’il s’agissait de la consommation d’énergie en mode inactif. Ce disque est presque toujours en veille et les températures du contrôleur et de la NAND sont restées basses tout au long des tests (20-24C). Il pourra éventuellement être remplacé par un SSD SATA pour libérer un port NVMe.
DISQUES DURS DE 2,5 POUCES
Ces disques sont utilisés pour la matrice ZFS RAIDZ2 principale à 6 disques – celle qui est la plus utilisée. Un jour par semaine, il est occupé par une tâche qui implique la lecture de quelques To au cours de 24 heures. Le reste de la semaine, l’utilisation est sporadique et les disques passent la majeure partie de la semaine à tourner. Pour ceux qui se demandent pourquoi les disques durs de 2,5 pouces sont utilisés à la place des disques durs de 3,5 pouces, il y a *une* raison : la consommation d’énergie.
La consommation électrique des disques Seagate de 2,5 pouces est franchement impressionnante. Ils consomment 0,18 watt chacun, 0,85 watt en mode veille et environ 2 watt en moyenne pour la lecture et l’écriture. Il existe de nombreux disques SSD dont la consommation d’énergie est inférieure à celle de ce disque. Une capacité de 5 To permet de stocker beaucoup d’espace par watt.
Les principaux inconvénients de ces disques Seagate de 2,5 pouces sont les suivants :
- Ils ne sont pas très performants. 80-120MB/s en lecture/écriture. Pour être honnête, de nombreux disques SSD TLC/QLC tombent à ces niveaux d’écriture lorsque leur cache SLC est épuisé.
- SMR (enregistrement magnétique shinglé). Les lectures sont correctes, mais les performances en écriture s’effondrent lorsque des écritures aléatoires ont lieu – il se comporte comme un SSD QLC sans cache SLC qui n’a pas non plus de TRIM.
- Charge de travail nominale faible (55 To/an contre 550 To/an pour les disques Exos 3,5″).
- Pas de temps de récupération d’erreur configurable (SCT ERC), et ces disques peuvent rester bloqués pendant des minutes s’ils rencontrent une erreur alors qu’ils essaient sans relâche de relire le secteur problématique. Ubuntu doit être configuré pour attendre au lieu d’essayer de réinitialiser le lecteur après 30 secondes.
- Des taux d’erreur plus élevés s’ils chauffent (j’ai dû en remplacer quelques-uns et j’ai découvert qu’ils n’aiment pas chauffer).
- Les problèmes typiques des disques durs (lenteur de rotation, etc.).
Pour être tout à fait juste envers Seagate, ces disques sont vendus en tant que disques de sauvegarde USB externes. Sortir ces disques de 15 mm de haut de leur boîtier et les utiliser comme membres d’un RAID dans un NAS n’est pas exactement l’usage auquel ils sont destinés. La très faible consommation d’énergie est extraordinaire, mais il y a des compromis évidents.
À long terme, ces disques 2,5″ de 4/5 To seront lentement remplacés par des disques SSD de 4 To (peut-être tous NVMe). Les disques SSD d’une capacité de 4 To ont commencé à être disponibles sur le marché grand public en 2021/2022 à environ 4-5x le coût des spinners. Moins de 2 ans plus tard, ils sont tombés à environ 2 fois le coût, et je m’attends à ce que les marques décentes durent plus de 2 fois plus longtemps que les spinners Seagate.
Si le modèle Crucial P3 (Gen3) reste disponible, je le conserverai probablement, même s’il est limité aux vitesses Gen3. J’ai fortement envisagé le Crucial P3 Plus (Gen4), mais la consommation d’énergie dans les revues était plus élevée malgré quelques rares situations où les performances étaient notablement plus élevées. Ma plus grande inquiétude concernant le P3 Plus (Gen4) était que si j’avais des problèmes avec ASPM/APST, Tom’s Hardware l’a montré avec une consommation d’énergie au repos supérieure de 0,3w par rapport au P3 (Gen3) pour le modèle 2TB. Je préfère que la consommation dans le pire des cas soit aussi basse que possible.
DISQUE DUR 3,5
Utilisé dans la matrice RAIDZ2 secondaire à 6 disques – une matrice de sauvegarde qui tourne environ 2 heures par semaine et qui reçoit constamment des écritures lourdes.
La consommation d’énergie des disques Seagate de 3,5 pouces est conforme à ce que l’on peut attendre. Ces disques de 10 To consomment environ 0,8 W chacun en veille, 2 à 5 W en mode veille, et 6 à 9 W en lecture et en écriture.
Deux points à prendre en compte :
- Ces disques sont conçus pour consommer collectivement environ 45 à 50 watts en écriture. Cela représente une charge supplémentaire pour l’onduleur que je ne souhaite pas vraiment si une longue coupure de courant se produit pendant les sauvegardes (je m’en tiens à des onduleurs grand public de 1500 watts).
- Ces onduleurs sont conçus pour consommer collectivement environ 4,8 watts lorsqu’ils sont en veille. Encore une fois, je n’hésiterais pas à réduire la charge de l’onduleur.
À long terme, ces disques seront probablement remplacés par des disques Samsung 870 QVO 8TB SATA. Le 870 QVO consomme 0,041w/0,046w au ralenti avec ALPM, 0,224w/0,229w au ralenti sans ALPM, et 2,0-2,7w pendant une copie (selon Toms/Anandtech).
En termes de prix, le Samsung 8TB SATA SSD est actuellement un peu plus cher que les spinners 8TB (près de 3x le prix), donc à moins que ces disques commencent à être utilisés plus fréquemment pour une raison ou une autre, le remplacement par les SSD attendra presque certainement que je sois à court de pièces de rechange.
Lecteur de cache NVMe
Le remplacement de mes rouilles par des disques SSD est un processus qui prendra probablement un certain temps.
En attendant, ZFS dispose de quelques options pour utiliser le stockage à grande vitesse (typiquement SSD) devant le stockage plus lent :
- Classe d’allocation « spéciale » – permet de créer un vdev spécifique pour les métadonnées et pour les « petits » blocs si vous le souhaitez.
- Il s’agit d’un lecteur de cache, communément appelé L2ARC.
Si vous créez le vdev « spécial » lors de la création du pool, toutes vos métadonnées (et, en option, les petits blocs de la taille de votre choix) iront sur le vdev « spécial » au lieu de votre disque en rotation. Les listes de fichiers et la traversée des répertoires sont très rapides tout en conservant la rouille en rotation pour les fichiers eux-mêmes. Oui, vous pouvez « ls » un tas de répertoires sans réveiller vos disques durs. Le plus gros inconvénient est que, comme toutes vos métadonnées se trouvent sur ce disque virtuel, s’il meurt, l’accès à toutes vos données est pratiquement perdu. Il devrait donc être au moins mis en miroir. Peut-être même un miroir à trois voies. Dites adieu à quelques ports.
Le L2ARC est un peu différent. Il s’agit essentiellement d’un cache de niveau 2. Lorsque le cache en RAM est plein, ZFS copie certains blocs dans le L2ARC avant d’expulser ce contenu de la RAM. La prochaine fois que ces données devront être consultées, elles seront lues à partir du L2ARC au lieu du disque. L’un des avantages par rapport au vdev « spécial » est que vous pouvez vous contenter d’un seul SSD – en cas de problème avec les données dans le L2ARC (mauvaise somme de contrôle, disque mort, etc.), ZFS lira simplement le contenu à partir du disque d’origine. De plus, une fois que le L2ARC est plein, ZFS recommence au début du SSD L2ARC et écrase les données qu’il a écrites auparavant, ce qui présente des avantages (les anciennes données ne sont plus jamais consultées) et des inconvénients (les données fréquemment consultées doivent être réécrites sur le L2ARC). Vous pouvez également ajouter/supprimer des périphériques L2ARC du pool à votre guise – vous souhaitez ajouter un SSD de 64 Go, un SSD de 500 Go et un SSD de 2 To ? ZFS répartira les blocs entre eux. Vous avez besoin de retirer le disque SSD de 500 Go du pool quelques jours plus tard pour l’utiliser ailleurs ? Ne vous gênez pas. Le principal inconvénient du L2ARC est que si vous oubliez de spécifier « cache » lors de l’ajout du périphérique, vous avez probablement gâché votre pool. Il est également imparfait : même avec un réglage minutieux, il est difficile de faire en sorte que ZFS écrive TOUT ce que vous voulez sur le L2ARC avant qu’il ne soit expulsé de la mémoire. En même temps, en fonction de vos données, le L2ARC peut voir beaucoup d’écritures, et vous pouvez avoir à surveiller attentivement la santé de votre SSD.
Dans le passé, j’ai utilisé le « special », le L2ARC, et les deux en même temps (vous pouvez même dire au L2ARC de ne pas mettre en cache les données déjà contenues dans le vdev « special »).
Cette fois-ci, j’ai simplement opté pour un L2ARC sur un NVMe de 4 To : une fois que tous les autres disques 2,5″ auront été remplacés par des SSD et que les avantages en termes de vitesse d’un cache SSD ne s’appliqueront plus, je pourrai simplement supprimer ce périphérique de cache (bien qu’en théorie, le fait d’avoir un lecteur de cache L2ARC gérant la majeure partie des lectures *permettrait* aux autres lecteurs NVMe de rester plus longtemps en mode basse consommation…).
Conclusion – Des regrets ? Des remises en question ? Qu’est-ce qui aurait pu se passer différemment ?
Contrairement à la construction de l’ASRock J4005 où j’ai réalisé en cours de route que je m’étais mis des bâtons dans les roues de plusieurs façons, je n’ai pas le même sentiment ici. Cette fois-ci, je me suis retrouvé avec une faible consommation au ralenti ET un système assez performant qui devrait être flexible même s’il est réutilisé à l’avenir.
Je suis assez satisfait de mes choix de composants, même si je serais curieux de savoir comment la MSI PRO Z790-P DDR4 (l’une des autres cartes mères que j’ai envisagées) se comporterait en comparaison. Sur le plan fonctionnel, la MSI a l’avantage d’avoir 6 ports SATA, mais elle a l’inconvénient évident d’avoir la fameuse puce réseau Intel 2.5G. Le MSI dispose également d’un port PS/2 et je n’ai jamais vérifié si la consommation d’énergie d’un clavier PS/2 était inférieure à celle d’un clavier USB (je rappelle que j’économise 1 watt si j’autorise powertop à éteindre le port clavier USB). Et bien sûr, il serait intéressant de comparer les paramètres ASPM et ALPM, et de voir si les problèmes que j’ai rencontrés avec les slots PCIe/M.2 attachés au CPU existent de la même manière.
Alors que ce système tourne actuellement autour de 15-16 watts au repos avec les disques en standby, une fois que tous les disques durs seront remplacés par des SSD, je m’attends à une consommation au repos d’environ 10-11 watts, ce qui n’est pas mal pour 72TB de disques, 64GB de RAM, et un processeur plutôt décent.
Je pense que beaucoup de maux de tête auraient pu être évités si tu avais trouvé une carte avec plus de ports sata !
De mon côté, je n'ai jamais réussi à faire passer ma puce au delà du C3. J'ai volontairement essayé de réduire le nombre de composants en trop (comme ces contrôleurs SATA, j'avais lu à quel point ils pouvaient être aléatoires).
Je vais vérifier mes paramètres BIOS pour m'assurer que j'ai activé tous les éléments pertinents que vous avez mentionnés dans votre article.
Article très intéressant, merci beaucoup.
Donc vous ne vous souciez pas de l'ECC, certains disent que c'est un must pour un serveur toujours actif, surtout avec ZFS.
De plus, les NVME semblent brûler plus de carburant que les SSD.
Je suis à la recherche d'une carte mère ECC frugale mais je n'ai encore rien trouvé, les cartes W680 sont difficiles à trouver.
En attendant, je fais tourner Unraid sur une carte Asrock J5040 avec deux SSD de 1 To en miroir et 3 WD mécaniques qui dorment la plupart du temps.
Le système consomme 19 watts au ralenti, il était de 16-17 watts (C6) avant d'ajouter un contrôleur Asmedia (4). Je vais bientôt remplacer le vieux PSU seasonic par un Corsair.
Salutations distinguées
Geert