5 solutions pour maîtriser la consommation énergétique des data centers

Écrit par Daniel Vanzo, le 17 juin 2021

Optimiser la consommation des data centers : un intérêt à la fois écologique et économique

On estime la consommation énergétique mondiale des équipements informatiques à 2.7% de la consommation énergétique totale en 2017. Il est prévu qu'elle représente jusqu'à entre 4.7% et 6% de la consommation total en 2025. Ce sont les estimations reportées dans le document de travail : Maîtriser la consommation du numérique. A la vue de cette progression, la maitrise de leur consommation est donc un enjeu environnemental important. Les grands centres de données (data centers) concentrent une part importante de cette consommation, de l'ordre de 30% d’après cet article de CNRS Le journal.  Il est donc intéressant de considérer les pistes qui permettent de réduire leur consommation en intervenant à l'échelle des centres de données, des logiciels et sur les combinaisons matériel/logiciel.

La question de la consommation des équipements numériques est abordée depuis longtemps. En effet, bien avant que la problématique de l’empreinte environnementale du numérique ne soit devenue un sujet d’actualité grand public. En effet, au-delà de la sobriété énergétique, il existe d’autres raisons pour lesquelles il est intéressant d’optimiser la consommation :

  • La densité : réduire la consommation permet de limiter la chaleur produite par les machines. Cela permet donc de concentrer plus de fonctionnalités et de puissance de calcul dans un même espace.
  • La puissance : parfois la puissance de calcul d’un grand centre de données est contrainte par la puissance au niveau de l’alimentation par le réseau électrique. Ainsi la réduction de la consommation unitaire par machine permet d’avoir plus de machines à iso-puissance d’alimentation.
  • Les coûts : pour des équipements qui consomment beaucoup d'énergie, la punition est double. En effet, il faut payer à la fois l'énergie consommée et le système de refroidissement. Dans les grands centres de données, une étude de l’Association technique énergie environnement (ATEE) estime à 50% la part de la consommation énergétique pour le fonctionnement des équipements IT et à 40% la part de la consommation des systèmes de refroidissements. Réduire la consommation permet de réduire les coûts sur les deux tableaux.
  • L'autonomie : pour les équipements qui fonctionnent sur batterie, une consommation plus faible permet automatiquement une meilleure autonomie.

Optimiser la consommation des équipements permet ainsi de combiner logiques économiques et préoccupations environnementales. Voici donc 5 solutions d’optimisation de la consommation des centres de données.

Solution 1 : Éteindre les machines non utilisées pour optimiser la consommation des data centers

Les centres de données sont dimensionnés pour pouvoir supporter la charge maximale à laquelle ils pourraient être soumis lors d’un pic d’activité. Mais les pics de charges sont occasionnels et pendant la majeure partie du temps les machines sont sous-exploitées.

L'exemple d'un service de streaming vidéo illustre bien le propos. Les utilisateurs l'utilisent principalement en fin de journée et beaucoup moins pendant la journée. L’étude de l’ATEE estime que les centres de données sont majoritairement utilisés entre 40% et 60% de leur capacité, on estime que le taux d'utilisation des infrastructures réseaux sont du même ordre (entre 30% et 60%). Lorsque que ces machines ne sont pas utilisées, elles consomment malgré tout de l'énergie.

D'après le rapport de thèse “Data centers energy optimization”, la consommation au repos d'un serveur est d'environ 65% de sa consommation maximale, c'est la quantité d'énergie consommé pour rien lorsqu'une machine n'est pas utilisée. Un serveur au repos peut donc consommer beaucoup d’énergie pour ne rien faire.

La solution la plus évidente serait simplement d'éteindre les machines non utilisées ... Simplement ? Ces manipulations impliquent des centaines voire des milliers de machines. Il faut par ailleurs être capable de les rallumer à temps lorsqu'il y en a à nouveau besoin. Lorsqu'une stratégie d'extinction/rallumage des machines est mise en œuvre, la qualité du service (QOS) est dégradée, en effet lorsque le besoin en machine augmente, il faut attendre un certain temps pour qu'elles soient rallumées et disponibles.

Il y a alors une décision à prendre. Il faut tenir compte d’une part, de la dégradation acceptable du QOS. D’autre part, des économies d’énergie rendues possibles par un tel sacrifice. Plusieurs travaux abordent le problème, dont la thèse précédemment citée, et proposent des méthodes pour éteindre et rallumer les machines tout en impactant le moins possible les services fournis par les machines. Le potentiel de réduction de la consommation est de l'ordre de 40%.

Solution 2 : Mutualiser l’utilisation des machines

Une deuxième solution consiste à "lisser la courbe"- pas celle de l'engorgement des hôpitaux, mais celle de l'utilisation des machines. Que faire de tout ce matériel lorsqu'on ne l'utilise pas ? Le partager avec un autre business qui présente un pic de charge à un autre moment que le soir.

Cette mutualisation des machines peut être faite à deux niveaux. Au niveau d’une entreprise disposant d’un centre de données privé, lorsqu’elle lance un nouveau service ou application, elle a intérêt à se poser la question suivante : ce nouveau service ou application peut-il être exécuté à des moments où mes machines ne sont pas beaucoup sollicitées – par exemple pendant la nuit ou le week-end ? Si cela est possible sans dégrader la qualité du service rendu aux utilisateurs, alors il est possible de fournir le nouveau service sans augmenter la capacité des infrastructures informatiques.

Au niveau inter-entreprises, il s’agit d’avoir recours au cloud. En proposant les ressources à la demande, le cloud permet de mutualiser les ressources informatiques. Une étude de l’usage du cloud publié en 2017 montre que la mutualisation des ressources via le cloud permet d'avoir un taux d'utilisation des machines physiques relativement constant : pour une région qui regroupe plusieurs centaines d'utilisateurs, la variabilité de l'utilisation en fonction du temps est relativement faible.

Solution 3 :  Investir dans la qualité du code

Utiliser les machines autant que possible, est-ce suffisant ? Si le logiciel qui s'exécute sur les machines n'est pas efficace, l'objectif d’optimisation de la consommation n'est pas atteint. Ce qui nous amène à une nouvelle piste : l'optimisation des logiciels.

Chaque logiciel doit répondre à des critères de performance. Par exemple, le temps à attendre pour avoir le résultat ou bien l'espace de stockage requis. Lorsqu’il s’agit d’améliorer la performance d’un logiciel (par exemple, recevoir un résultat plus rapidement) deux solutions sont possibles. Soit on investit dans le matériel, soit on investit dans la qualité du code. Alors quelle solution privilégier ? Si le seul critère de décision est le coût, il est probable que l’entreprise s’orientera vers des investissements au niveau du matériel. Si en revanche l’entreprise veut prendre aussi en considération le critère environnemental, l’option d’investir dans la qualité du développement devient plus intéressante.

On pourrait objecter à cette approche que les optimisations au niveau du code permettent certes de mieux exploiter les ressources pour exécuter les instructions logicielles plus rapidement, mais que ceci augmente en général la consommation instantanée des puces. D'une part, il y a une réduction de la consommation dû au fait que la machine est sollicitée pendant une plus courte période. D'autre part il y a une augmentation de la consommation dû au fait que la machine est sollicitée de manière plus intense.

Deux études, l’une de l’Université d’Orléans et la seconde avec la participation de l’Université de Dortmund montrent qu’en réalité que dans toutes les situations testées, la réduction est plus importante que l'augmentation : l’optimisation du code permet donc de réaliser des économies d’énergie.  Il est également intéressant de remarquer que dans l'étude de l’Université d’Orléans certaines optimisations n'affectent pas les performances, mais seulement la consommation énergétique : optimiser la consommation ne nécessite donc pas forcément des sacrifices côté performance.

Il reste cependant quelques freins à lever pour généraliser l'optimisation du code à des fins de maîtrise de la consommation d’énergie. Premièrement, au niveau des outils. Les outils de développement dédiés à l'optimisation des performances sont variés et plutôt matures. Cependant, les outils dédiés à l'étude de la consommation sont eux moins disponibles. Deuxièmement, au niveau culturel. En plus des outils, cela demande une évolution de la culture. Aussi bien côté métier que côté IT, pour tenir compte de l’efficacité énergétique au même titre que des performances.

Solution 4 :  avoir recours à des accélérateurs (composants spécialisés par application)

Jusque-là les aspects matériel et logiciel sont abordés séparément, ce qui met de côté toute une classe d'optimisations pour les performances et la consommation. Au prix d'une complexité supplémentaire, il est possible de concevoir un service en considérant le matériel et le logiciel simultanément pour ouvrir le champ de possibilités.

Le Green500 est un classement des meilleurs calculateurs du monde établi sur la base de l’efficacité énergétique. Il a été introduit comme alternative au classement Top500, qui lui s’intéresse uniquement à la puissance de calcul brute, sans tenir compte de la consommation énergétique. Chose non surprenante, on retrouve en tête de chacun des deux classements des machines récentes :  les technologies les plus récentes permettent à la fois une puissance de calcul brut plus grande et une meilleure efficacité énergétique.

En se focalisant sur le Green500, on constate que le haut du classement se compose principalement de machines avec accélérateurs. Les accélérateurs sont des composants spécialement conçus pour un type d'applications spécifiques en opposition aux composants généralistes. Les exemples les plus courants sont les General Purpose Graphical Processing Unit (GPGPU), conçus pour les applications massivement parallélisables. Concevoir une puce pour une catégorie spécifique de cas d'usage permet de faire des optimisations sur quasiment tous les plans : puissance brute, efficacité énergétique ou densité.

Mais alors, pourquoi ne pas systématiquement utiliser ces accélérateurs ? Le fait est qu’ils exigent du temps et des compétences particulières pour les mettre en œuvre. Utiliser un accélérateur demande souvent de réécrire les logiciels en grande partie et ceci par des développeurs spécialisés. Cela constitue donc un coût important en ressources humaines.

Mais avant même de porter les logiciels, il faut d'abord que ces accélérateurs existent ! Certaines entreprises ont les capacités de concevoir et de produire des puces spécialisées pour leurs besoins, par exemple Google avec les TPU. D'autres entreprises n'en ont pas les capacités et n'ont accès qu'aux puces produites par d'autres.

Ces dernières ne sont pas forcément adaptées à leurs besoins. Cela ne signifie pas que tout est perdu. Il est parfois possible réutiliser les puces spécialisées avec un peu d'astuce pour un cas d'usage différent tout en profitant de leur efficacité. C'est ainsi par exemple que des composants conçus au départ pour des applications graphiques sont aujourd'hui utilisés dans les industries bancaire, aéronautique, du bâtiment et dans la recherche scientifique.

Cette piste d’optimisation par le recours à des accélérateurs dépendra donc en partie du secteur d’activité de l’entreprise. Elle dépendra également de sa disponibilité à investir dans des développeurs hautement spécialisés.

Solution 5. La sobriété

Après avoir veillé à correctement exploiter le matériel, avoir optimisé les applications et conçu matériel et logiciel ensemble, il reste encore un levier d'action essentiel pour contrôler la consommation : la sobriété.

Rouler un peu moins vite en voiture permet de réduire considérablement la consommation de carburant : Un article du site Caradisiac calcul qu’en passant de 130 à 110km/h, il est possible de baisser de 25% la consommation. La consommation n'est pas proportionnelle à la vitesse, les quelques minutes de gagnés coûtent cher en énergie. Il en va de même pour les appareils informatiques. Des tests chez un de nos clients montrent qu'une réduction de 4% des performances peut s'accompagner d'une réduction de 30% de la consommation. D’autres tests menés à L’Université de l’état de Caroline du nord montrent d'autres exemples avec une réduction de 20% de la consommation au prix d'une perte de seulement 6% des performances pour l'une des applications testées. En somme, une faible perte de performances en contrepartie d'un gain significatif d'énergie.

D'où vient cette économie d'énergie ? Plusieurs mécanismes sont en jeux. L'un des principaux est le suivant : les machines sont composées de plusieurs parties. Processeur, mémoire vive, stockage, interconnections avec d'autres machines etc.. Il y a toujours un de ces composants qui se trouve être le goulot d'étranglement pour les performances de l'application. Les autres composant sont donc sous-utilisés et consomment de l'énergie inutilement. On peut donc brider ces derniers pour s'aligner sur les performances du composant le plus faible. Ceci avec un faible impact sur les performances. Le défi est alors d'être capable d'analyser les applications au cas par cas. Cela permet de reconnaître les goulots d'étranglements et mettre en œuvre les bridages.

Enfin, nos applications ont-elles vraiment besoin d'aller le plus vite possible ? Prenons l'exemple d'un cas d'usage qui nécessite de rendre le résultat d'un calcul pour une date butoir précise. Il n'y a pas d'avantage à terminer le calcul plus tôt. Il est donc possible de réduire les performances des machines pour réduire leur consommation sans compromis sur les exigences du métier. Les deux principaux enjeux sont alors :

  • de définir des objectifs de performances en fonction des contraintes du métier.
  • de bien maîtriser les performances de l'application afin d'avoir des temps d'exécutions prédictibles et répétables.

Conclusion

La consommation des équipements IT devient de plus en plus importante et il faut également la maîtriser. Il existe plusieurs solutions éprouvées pour réduire la consommation. Elles agissent à plusieurs niveaux : à l'échelle des centres de données, des logiciels et sur les combinaisons matériel/logiciel.

Certaines solutions impliquent des compromis plus ou moins importants. Ils peuvent se situer au niveau de la performance ou de la qualité du service rendu. Dans ces cas, pour mettre en place les solutions, cela nécessite donc un alignement entre métier et IT. Cela permet de définir l’équilibre optimal entre qualité de service et efficacité énergétique. Certaines solutions sont en revanche totalement « gratuites » : la consommation peut baisser sans aucun sacrifice à faire ailleurs !