...

Optimiser la mise à l'échelle de la fréquence du CPU du serveur et la consommation d'énergie

J'optimise Mise à l'échelle du CPU de manière à ce que les serveurs baissent la cadence et la tension en cas de faible charge, sans risquer de latence sensible. Avec des profils d'énergie bien définis, je contrôle Performance et les besoins en électricité tout au long de la charge de travail réelle, ce qui permet de réduire les coûts et la chaleur résiduelle de manière mesurable.

Points centraux

Avant d'aller plus loin, je retiens clairement les principaux leviers de réglage. Ainsi, l'accent est mis sur les réglages les plus efficaces et non sur les aspects secondaires. Je classe les priorités selon Charge de travail, les besoins en latence et l'efficacité. Sur cette base, je prends des décisions solides pour le BIOS, le système d'exploitation et les applications. Les points suivants mènent directement à moins Énergie par demande.

  • Élection du gouverneurDynamique au lieu de fréquence maximale permanente.
  • DVFS: adapter ensemble la tension et la cadence.
  • profil de charge: Connaître les pics réels et les temps morts.
  • AutomatisationMaintenir durablement la cohérence des configurations.
  • Vue d'ensemble: penser matériel, OS et app ensemble.

Que signifie "CPU Frequency Scaling" ?

Par mise à l'échelle de la fréquence du CPU, j'entends l'adaptation dynamique de Mesure et souvent aussi la tension à la charge de travail actuelle. Les CPU modernes abaissent la fréquence à quelques centaines de mégahertz lors des phases de marche à vide et réduisent ainsi la Puissance absorbée de manière significative. Si la charge augmente, le CPU augmente la cadence par paliers ou saute dans des plages élevées par boost. Cette dynamique s'appelle DVFS et combine le contrôle de la fréquence et de la tension pour une efficacité supplémentaire. Au niveau du système d'exploitation, je décide par le biais d'un gouverneur de l'agressivité avec laquelle la fréquence réagit aux changements de charge.

Gouverneur de CPU et profils d'énergie en fonctionnement serveur

Je choisis celui qui convient gouverneur selon des objectifs de latence et d'efficacité, et non selon l'instinct. Sous Linux, performance, powersave, ondemand et conservative fournissent des réactions très différentes à la charge. Sous Windows, je choisis entre performances maximales, équilibrées et modes économiques, souvent en plus par profil BIOS. Lors d'un test avec un serveur de base de données en production, le passage du profil équilibré aux performances maximales a montré une différence de performances d'environ 20 % [2]. Cette fourchette montre à quel point les profils énergétiques déterminent les temps de réponse et le débit.

Gouverneur/Profil Latence Besoin en énergie Utilisation typique
performance / performance maximale très faible élevé SLA dur, trading, bases de données fortement liées aux E/S
ondemand / Équilibré faible-moyen moyen Hébergement web, CI/CD, virtualisation avec charge variable
conservative moyen faible-moyen Homelab, services calmes avec des pics occasionnels
powersave / mode économie d'énergie plus élevé faible Longues durées, archives, charges de travail par lots sans pression de SLA

Pour les hôtes productifs, j'aime miser sur ondemand ou conservative, lorsqu'il n'y a pas de pleine charge permanente. Ainsi, le CPU reste suffisamment rapide, mais économise sensiblement de l'énergie au repos.

Contrôle fin des pilotes et profils de CPU modernes

Dans la pratique, je fais la distinction entre les pilotes et les stratégies de la plate-forme : les systèmes Intel utilisent souvent des intel_pstate (active ou passive), tandis que les configurations classiques acpi-cpufreq de l'entreprise. Chez AMD, c'est amd_pstate prennent de l'importance. Ces pilotes influencent les gouverneurs disponibles et la rapidité de réaction du CPU à la charge. De plus, sous Linux schedutil s'est établi : Il lie plus étroitement le choix de la fréquence à l'ordonnanceur et réagit ainsi souvent avec plus de précision aux bursts courts. Pour les charges de travail comportant de nombreuses requêtes courtes, c'est un avantage tant que la fréquence minimale ne tombe pas trop bas.

Une deuxième vis de réglage est la Préférence de performance énergétique (EPP) ou le biais de performance énergétique. C'est à partir de là que je détermine si le CPU booste de manière agressive ou si sa cadence est conservatrice. Sous Linux, je définis cela par politique CPU ; sous Windows, j'utilise le profil énergétique (valeurs en pourcentage dans le schéma équilibré) pour équilibrer la réactivité et l'efficacité. C'est ainsi que je forme la caractéristique entre „performance maximale immédiate“ et „ne démarrer qu'en cas de charge vraiment persistante“.

Relation entre la cadence, la puissance et la consommation électrique

Je planifie les serveurs de manière à ce qu'ils ne soient que rarement placés dans les endroits les plus chers. Mesure-sont en cours d'exécution. La consommation augmente de manière disproportionnée lorsque le CPU fonctionne à une fréquence proche du maximum et que les Tension suit le mouvement. Les 10-20 derniers % de performance coûtent souvent beaucoup d'énergie, mais ne fournissent que peu d'avantages au quotidien. C'est pourquoi j'utilise des modes dynamiques au lieu d'une fréquence maximale permanente pour les charges modérées. Si vous souhaitez comprendre l'influence de la fréquence par requête, vous trouverez des informations de fond sur la fréquence par rapport aux noyaux dans cet article compact : Fréquence d'horloge et noyaux.

Mesure et optimisation dans la pratique

Je commence par un clair Ligne de base-Snapshot : réglage actuel du gouverneur, niveaux de fréquence, consommation au repos et courbes de charge. Ensuite, je modifie exactement un paramètre et je mesure à nouveau pour ne pas brouiller les corrélations. Des outils comme cpupower et powertop m'aident à recueillir des faits plutôt que des suppositions [1]. Pour les environnements partagés, je garde un œil sur les limites éventuelles et j'analyse Throttling du CPU, si les temps de réponse augmentent sans charge visible. A la fin, j'automatise toutes les étapes de réglage via systemd pour que chaque redémarrage soit identique. Paramètres tire.

Des mesures et des outils qui ne manquent jamais dans une analyse

Pour prendre des décisions solides, je mesure systématiquement :

  • Distribution de la fréquence et de l'état CCombien de temps le CPU passe-t-il dans des états de repos profonds, à quelle vitesse les cœurs boostent-ils ?
  • Puissance et températures du packageVérifier les effets de l'EPP/la fréquence minimale/maximale, garder un œil sur les courbes des ventilateurs.
  • Métriques de temps de réponse et de débitP50-P99, pour détecter les latences de queue.
  • Classification de la charge de travail: lié au CPU vs. lié aux E/S, longueur de rafale, degré de parallélisme.

Je combine la télémétrie proche du noyau avec des points de mesure externes (par ex. IPMI/PDU) pour tenir compte de l'influence du centre de calcul et du PUE. Ce n'est que lorsque les chiffres de l'énergie et de la performance s'améliorent simultanément qu'un tuning est vraiment réussi.

Proche du CPU : régler correctement le BIOS/UEFI et le firmware

J'assure de nombreux gains d'efficacité directement dans le BIOS/UEFI, car c'est là que sont posées les bases de l'OS :

  • États CC-States profonds (C6/C7) économisent beaucoup d'énergie en mode inactif, mais peuvent ajouter des latences de réveil minimales. Pour les services sensibles à la latence, je limite légèrement les C-States maximum autorisés au lieu de les désactiver complètement.
  • Turbo/Boost: laisser activé, mais définir un cadre. Un cap en douceur sur la fréquence maximale réduit les pics de tension et les pics de ventilation sans perte de débit perceptible.
  • Energy Efficient Turbo / EPPPréférer les réglages équilibrés qui tiennent compte de la dynamique de la charge plutôt que de forcer un boost permanent.
  • SMT/HT: Selon la charge de travail : Les bases de données et les piles web en profitent souvent, les charges de travail RT dures parfois pas. Je le vérifie via les latences P99.
  • Mises à jour du micrologicielAprès les mises à jour, je contrôle les paramètres par défaut. Je documente les décalages et j'applique à nouveau les profils afin d'éviter toute régression involontaire.

Meilleures pratiques pour une configuration de serveur efficace sur le plan énergétique

Je commence avec une Analyse de la charge, Par exemple, les courbes quotidiennes et hebdomadaires ainsi que la durée des pics. Ensuite, je définis le gouverneur et la fréquence minimale et, en option, je limite légèrement la fréquence maximale afin de lisser la consommation de pointe. Pour les piles à forte charge de cache, je règle le CPU pour qu'il démarre rapidement, car de courtes rafales suffisent généralement. En même temps, je maintiens les fréquences de repos à un niveau bas, afin que la charge de base soit faible. Énergie coûtent, en effet. Je documente toutes les interventions de manière succincte et je les mesure par rapport à des objectifs clairs tels que les temps de réponse, les kWh/jour et les € par mois.

Mettre en œuvre concrètement le tuning Linux et Windows

Sous Linux, je place les balises de manière reproductible :

  • gouverneur: par cpupower de manière permanente (unité systemd ou outils de distribution).
  • Fréquence min/max: limite inférieure conservatrice contre le „trou de démarrage“, limite supérieure légèrement réduite contre les pics de tension.
  • EPP/biasChoisir le nombre de bursts par politique de manière à ce que les bursts courts soient traités rapidement.
  • Tables Ondemand/Schedutil: Définir les seuils et les limites de débit de manière à éviter le flapping de fréquence.

Sous Windows, je travaille avec des paramètres de profil énergétique plus fins. Dans le profil équilibré, je diminue nettement la puissance minimale des cœurs du processeur, je laisse la puissance maximale légèrement en dessous de 100 % et je règle l'extension de la puissance du processeur (préférence énergétique) sur „équilibré“. Ainsi, les systèmes restent rapides sans avoir à fonctionner en permanence à haute fréquence.

Latence-Jitter, C-States et interruptions

Les latences de queue sont souvent dues à une combinaison de C-States profonds, de granularité du timer et de distribution des interruptions. C'est pourquoi j'adopte une approche à trois niveaux :

  • C-States maximum limiter de manière bien dosée ou augmenter légèrement la fréquence minimale si la gigue P99 est gênante.
  • Affinité IRQ et respecter la topologie NUMA : Lier les cartes réseau et les IRQs critiques pour la mémoire aux noyaux qui correspondent au domaine NUMA de la charge de travail concernée.
  • Isolation de l'ordonnanceur pour les services très sensibles (noyaux isolés), afin que les tâches d'arrière-plan n'interfèrent pas.

L'objectif reste le même : autant de profondeur idle que possible, aussi peu de gigue que nécessaire. Je réduis le bon équilibre à des métriques, pas à une intuition.

Penser l'efficacité des serveurs de manière globale

L'efficacité ne s'arrête pas à la CPU. Je teste les blocs d'alimentation avec 80 PLUS Gold/Platinum, je mise sur des SSD modernes et je dimensionne la RAM de manière judicieuse. La virtualisation consolide les services afin que peu d'hôtes soient fortement sollicités et donc efficaces. Côté logiciel, j'économise des cycles de CPU avec des caches, des paramètres de serveur web légers et des versions PHP actuelles. Ceux qui veulent aller plus loin dans la cadence, le cache et la micro-architecture profiteront de cet aperçu compact : Architecture du CPU et cache.

Virtualisation, conteneurs et aspects cloud

Dans les environnements de virtualisation, la gestion des fréquences fait partie de la Niveau de l'auberge. Les invités peuvent certes demander des politiques, mais c'est l'hyperviseur qui décide. Je définis donc des profils cohérents sur l'hôte et assure un comportement planifiable grâce au CPU pinning et aux allocations vCPU appropriées. Dans les conteneurs, j'équilibre les quotas CPU/burst par rapport aux exigences de latence : des quotas trop serrés empêchent les effets de boost, des quotas trop généreux entraînent des courbes de fréquence instables. Dans les flottes mixtes, j'encapsule les services critiques sur des nœuds avec une fréquence minimale conservatrice et un boost activé, tandis que les charges de travail par lots sont exécutées sur des hôtes réglés avec parcimonie. Dans les environnements de cloud computing, je vérifie si la classe d'instance autorise la moindre liberté de fréquence et de boost - tous les vCPU ne sont pas gérés de manière identique.

Performance vs. consommation d'énergie : le bon compromis

Je pondère Latence contre les coûts, plutôt que de miser aveuglément sur des valeurs maximales. Les systèmes sensibles à la latence s'en sortent bien avec des profils similaires à la performance, tant que les budgets et le refroidissement le permettent. Pour l'hébergement web, les outils internes ou les homelabs, je préfère ondemand ou conservative. Ainsi, je maintiens des temps de réponse proches de la pointe, mais j'économise nettement en mode inactif. Cette approche réduit Thermique et prolonge sensiblement la durée de vie des composants, comme le montre l'expérience.

Surveillance et automatisation au quotidien

J'assure un succès durable grâce à des exercices répétitifs. Flux de travail. Je centralise les métriques telles que la fréquence, les C-States, la puissance du package et les températures. Les alertes interviennent lorsque les profils changent par inadvertance ou que les mises à jour du micrologiciel réinitialisent les valeurs par défaut. Les tâches récurrentes définissent les mêmes indicateurs d'énergie après les redémarrages afin d'éviter toute divergence. Ainsi, le rapport entre Performance et la consommation sont stables à long terme.

Anti-pattern et sources d'erreurs fréquentes

Ce que j'évite systématiquement :

  • Profil de performance permanent par commodité : consomme de l'électricité, réchauffe les pièces et apporte rarement une réelle utilité.
  • Fréquences minimales trop basses, Les effets de l'utilisation du P99 sont les suivants.
  • Modifications non coordonnées du BIOS sans documentation - après les mises à jour, le chaos est programmé.
  • Réglage unique sans rétroaction: les charges de travail changent, les profils doivent suivre.

Comment les clients de l'hébergement profitent d'un scaling optimisé

Les bons profils énergétiques agissent directement sur Stabilité et la prévisibilité. Des temps d'accélération plus courts permettent aux pages de rester réactives, tandis que des fréquences de repos plus basses réduisent les coûts. Moins de chaleur perdue réduit les pics thermiques et donc les étranglements potentiels. Les clients s'en aperçoivent grâce à des temps plus réguliers et à une réduction des risques lors des pics de charge. Un hébergeur transparent communique Efficacité-Les étapes et la génération de matériel sont ouvertes et compréhensibles.

Exemples concrets de calcul d'économies

Une économie durable Consommation de 20 W correspond à environ 175 kWh par an (24×365). À 0,30 €/kWh, j'économise ainsi environ 52,50 € par serveur et par an. Dans une flotte de 100 hôtes, cela s'élève rapidement à 5 250 € par an. En outre, si je limite légèrement les pics d'alimentation, les températures restent plus basses et les ventilateurs fonctionnent plus calmement. Ce calcul simple montre comment CPU-Le scaling a un impact direct sur la comptabilité analytique.

Des étapes de réglage pratiques sans effets secondaires

Je mets tout d'abord en place une politique modérée Fréquence minimale, pour que les réveils ne soient pas trop difficiles. Ensuite, je définis des valeurs seuils de manière à ce que les pics courts soient traités immédiatement. J'active les optimisations Powertop de manière automatisée, mais je vérifie la persistance après les redémarrages. Pour les profils BIOS, je documente chaque changement, car une mise à jour du micrologiciel peut modifier les valeurs par défaut. Des contrôles ponctuels réguliers garantissent que Charges de travail ne se sont pas développées en secret et que les profils doivent être réajustés.

Cas pratique : de la performance brute à l'efficacité mesurable

Une pile web et API avec un trafic très fluctuant fonctionnait au début à la puissance maximale. La puissance au repos était de ~85 W, la latence P95 de l'API était de 38 ms. Après le passage à ondemand/schedutil, une fréquence minimale juste au-dessus du niveau d'inactivité le plus bas et un léger cap sur la fréquence maximale, la consommation d'inactivité est tombée à ~65 W. La latence du P95 est restée stable à 37-39 ms, la latence du P99 s'est même légèrement améliorée après le réglage de l'affinité IRQ. Au final : ~175 kWh/an économisés, expérience utilisateur identique, ventilateurs plus silencieux. C'est exactement l'équilibre que je recherche : Réduire l'énergie par demande sans risquer l'effet produit.

En bref

J'utilise CPU-pour économiser de l'énergie pendant les phases calmes et libérer de la puissance en quelques millisecondes si nécessaire. La clé réside dans des mesures claires, un régulateur adapté et une automatisation conséquente. En limitant intelligemment la cadence, la tension et le boost, on réduit sensiblement l'énergie par requête. En même temps, les temps de réponse des sites web et des bases de données restent stables. Comment réduire Coûts, Le système de gestion de l'hébergement permet d'économiser du matériel et d'obtenir un environnement d'hébergement plus durable.

Derniers articles

Réseau mondial DNS anycast avec centres de données connectés
hébergement web

Résolveur DNS Réseaux anycast utilisés dans l'hébergement

Découvre comment les résolveurs DNS anycast assurent un dns à faible latence dans l'hébergement et pourquoi l'hébergement distributed dns améliore les performances et la disponibilité des sites web modernes.