J'ai récemment décidé de transformer mon ancien Xeon E3-1241 v3 en NAS. Pour des raisons évidentes, je veux qu'il utilise le moins d'énergie possible, je suis donc allé dans le bios et j'ai abaissé la vitesse d'horloge à 800 MHz. Cette partie est très bien, mon compteur mural montre la machine tirant ~ 60W dans le BIOS.
Maintenant, quand je vais démarrer la machine, le processus de démarrage d'Ubuntu remplace en quelque sorte le multiplicateur de jeu du BIOS et tire joyeusement ~ 140 W du mur pendant la durée du démarrage.
Dès qu'il a terminé le processus de démarrage, il frappe mon crontab @reboot /usr/sbin/cpufreq-set -u 0.8Ghz
ce qui le ramène à mes paramètres définis par le BIOS. Pour l'empêcher de revenir à la demande à 60 secondes, j'ai supprimé /etc/init.d/ondemand
. Il reste maintenant heureux à 800 MHz et 45 à 60 W tout le temps, sauf lors du démarrage. Parfait .. Presque.
Je dois le forcer à rester à 800 MHz, même pendant le démarrage, car j'ai l'intention de définir une tension vCore inférieure pour économiser encore plus d'énergie (et prolonger la durée de vie du CPU/VRM/de la carte mère), mais je ne peux pas pour la vie de moi comprendre pourquoi il remplace les paramètres du BIOS lors du démarrage. Actuellement, quand il essaie de démarrer avec ma faible tension vCore, il panique environ la moitié du temps car il essaie d'exécuter le processeur à 3,5 GHz pour la durée du processus de démarrage. Mon compteur mural confirme la lecture de la forte intensité lors du démarrage et puisque la machine n'a rien d'autre que le SSD et la carte graphique du serveur installés, à ce stade, nous pouvons exclure que la plupart des autres facteurs en soient la cause (ils sont inférieurs à 10 W au total).
Il n'entre dans cet état de pleine puissance que pendant environ 1 seconde avant de toucher mon crontab/rc.local et est ramené à 800 MHz. Malheureusement, en raison de la faible tension vCore, l'achèvement du processus de démarrage est un peu aléatoire.
Après avoir fait pas mal d'expérimentation, j'ai découvert que la plupart des façons de contrôler l'horloge fonctionnent comme echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
. Les ajouter à crontab/rc.local/init.d fonctionne principalement, mais la seconde mentionnée ci-dessus est toujours problématique.
Modifiez/etc/default/grub avec votre éditeur de texte préféré. Recherchez la ligne commençant par GRUB_CMDLINE_LINUX_DEFAULT=
et placez l'option noyau intel_pstate=disable
sur celui-ci en préservant toutes les options actuelles précédentes (silencieux et splash sont communs) et les espaces entre eux ainsi que les guillemets à chaque extrémité.
Exemple:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=disable"
Maintenant, mettez à jour grub avec Sudo update-grub
Remarque: La seule autre chose qui vous vient à l'esprit pour réduire la consommation d'énergie serait de remplacer le disque de démarrage/système par un SSD. (Notez que cela peut rendre la récupération de données en cas d'échec extrêmement difficile, voire impossible)