Consommation énergétique : comment le logiciel aide Facebook à optimiser

Après avoir rendu ses composants serveurs et hardware plus économes en termes énergétiques, Facebook optimise son infrastructure logicielle pour réduire son empreinte sur l’environnement.

Après avoir rendu ses composants serveurs et hardware plus économes en termes énergétiques, Facebook a décidé de s'attaquer  à l’optimisation de  son infrastructure logicielle pour accroitre un peu plus son efficacité énergétique et réduire son empreinte sur l’environnement.

Le groupe a développé un système baptisé Autoscale pour prendre en compte l’équilibrage de charge (load balancing) et optimiser la consommation énergétique. Actuellement installé sur ses clusters en production, Autoscale aurait déjà permis de réaliser des « économies d’énergie significatives », explique le réseau social.

« Nous avons beaucoup communiqué sur nos avancées dans la conception de datacenters et équipements matériels efficaces dans le cadre de l’Open Compute Project, mais nous avons également commencé à réfléchir à la façon d’améliorer l’efficacité énergétique de nos logiciels », explique Quiang Wu, ingénieur logiciel Infrastructure chez Facebook, sur un blog de la société.

Les ingénieurs dédiés au datacenter ont développé le système Autoscale après avoir exploré plusieurs pistes, comme la modélisation de la consommation ou le profilage de la consommation (Power modeling et Power Profiling), la gestion des pics d’alimentation ou encore la consommation énergétique proportionnelle au calcul.

Avec ses travaux sur le hardware, Facebook indique avoir réduit ses coûts de 24% et augmenté l’efficacité énergétique de son IT de 38% depuis sa décision d’utiliser des équipements matériels Open Source dans ses datacenters. Ces systèmes reposent sur le projet Open Compute, initié en en avril 2011 par un petit groupe d’ingénieurs Facebook , cherchant à dimensionner l’infrastructure du groupe de la façon la plus écologique et économique.

Mais les évolutions en matière d’efficacité sur les infrastructures hardware, seules, ne sont pas suffisantes pour que Facebook atteigne ses objectifs en matière de réduction de son empreinte carbone,  surtout avec l’accroissement de son parc de datacenters et de son infrastructure IT.

En 2013, la consommation énergétique totale de Facebook était de 822 millions de kilowatts / heures (kWh), 95% de cette énergie étant utilisée par ses 4 datacenters. La consommation du réseau social et son empreinte carbone ont augmenté en 2013, en dépit  de ses travaux portant sur l’efficacité énergétique de ses datacenters et l’usage de sources d’énergies renouvelables et propres. L’empreinte carbone de tous ses datacenters (3 aux Etats-Unis et 1 en Europe) était de 355 000 tonnes métriques de CO2, contre 285 000 en 2011.

Ses ingénieurs sont donc actuellement en train de chercher de nouvelles façons pour optimiser les composants logiciels pour réduire cet impact sur l’environnement alors même que son IT évolue encore. « Nous sommes encore au début de l’optimisation de notre infrastructure logicielle pour accroitre notre efficacité énergétique et nous continuons d’explorer de nouvelles opportunités sur les différentes couches de notre pile logicielle afin de réduire la consommation de nos datacenters », indique Wu. « Nous espérons qu’en continuant à innover, nous rendrons l’infrastructure de Facebook plus efficace et plus durable. »

Comment fonctionne Autoscale

Chaque jour, les clusters de Facebook traitent des milliards de requêtes de pages qui augmentent l’utilisation des serveurs, particulièrement lors des heures d’affluence de trafic. La politique par défaut d’équilibrage de charge du groupe est basée sur un algorithme d’ordonnancement tourniquet (round robin) – chaque serveur reçoit le même nombre de requêtes de pages et utilise environ la même quantité de CPU. Toutefois, les ingénieurs estiment que ce mécanisme n’est pas très efficace. Et ce, parce que certains des serveurs Web consomment une quantité importante d’énergie (130 watts) lorsqu’ils ont à traiter un nombre réduit de requêtes par seconde. L’équipe Datacenter a décidé qu’il était préférable d’éviter d’utiliser ses serveurs dans le cas de requêtes peu volumineuses.

« Pour résoudre ce problème et mieux gérer la consommation d’énergie, nous avons modifié la façon dont la charge est distribuée aux différents serveurs Web du cluster », explique encore Wu dans son billet de blog.

« L’idée derrière Autoscale est qu’au lieu de se reposer sur cette approche dite « Round Robin », l’équilibreur de charge concentre les workloads sur un serveur jusqu’à ce qu’il en dispose d’un niveau moyen ».

Après l’implémentation d’Autoscale, l’équilibreur de charge utilise désormais un pool de serveurs actif ou virtuel qui est un sous-ensemble du pool de serveurs physique. Autoscale ajuste la taille du pool actif pour que chaque serveur puisse disposer d’un niveau moyen d’utilisation CPU quelle que soit le niveau total de workload. Les serveurs qui ne sont pas dans le pool actif ne reçoivent pas de trafic. « Si l’idée semble simple, il est difficile de l’implémenter de façon efficace et surtout fiable dans un système à large échelle », admet Wu.

Citant l’exemple d’un serveur Web en production, Autoscale a permis d’économiser 27% d’énergie vers minuit où le trafic était bas. En moyenne, l’économie d’énergie sur un cycle de 24 heures est de 10-15% pour plusieurs clusters. « Dans un système avec un nombre élevé de clusters, Autoscale peut faire économiser une quantité significative d’énergie », soutient Wu. « En l’état actuel, nous avons décidé de, soit laisser les serveurs inactifs en mode veille pour économiser de l’énergie, soit ré-allouer la capacité inactive à des opérations de traitement en mode batch. Globalement, les deux méthodes ont amélioré l’efficacité énergétique de nos datacenters », conclut-il.

Traduit de l'anglais par la rédaction

 

 

Pour approfondir sur Architectures de Datacenters