L'utilisation "Green" des serveurs

Dans le contexte actuel de l'usage intensif des moyens informatiques. Les centres de données ou "datacenters" ne cessent de grandir et évoluer. Entre les datacenters locaux et l'usage du cloud, même les petites entreprises utilisent un nombre considérable de services et de serveurs pour assurer leurs fonctions. Selon un rapport, la part du marché des serveurs a atteint 55 milliards de dollars en 2020, et est prévu d'augmenter de 9.5%  entre 2021 et 2027.Cependant, l'achat des serveurs est-il toujours justifié par l'utilisation? La réponse à cette question est très délicate. En effet, les stratégies d'acquisition des serveurs ne sont pas toujours optimales.
Une étude menée en 2015 au US a remonté qu'en moyenne, 30% des serveurs dans des datacenters sont dans un état comateux (serveurs non sollicités pendant au moins 6 mois).Même si l'étude commence à dater, elle permet de montrer que les stratégies d'achat et d'utilisation des serveurs sont loin d'être optimales. Sachant que le coût de fabrication des serveurs représente entre 15% et 40% de la consommation globale de leur cycle de vie, il est indispensable de limiter les achats au stricte nécessaire ainsi que de prolonger leur durée de vie afin de réduire l'empreinte énergétique.

Répartition de l’empreinte carbone du serveur Dell R740 sur son cycle de vie (EOL = Fin de vie)


Mutualiser les serveurs à travers la virtualisation ou encore l'usage de conteneurs est l'un des moyens les plus connus permettant de réduire le nombre de serveurs achetés/utilisés. Cela n'est cependant pas toujours suffisant. En effet, mutualiser des serveurs n'empêche pas que ces derniers soient sous-utilisés. Dans plusieurs cas, les ressources (Cœurs CPU par exemple) sont allouées de manière rigide (thick provisionning) et sont donc exclusivement  dédiées à des services même si elles ne sont pas utilisées de manière continue, ce qui augmente inutilement le nombre de serveurs utilisés. L'évolution du nombre de serveurs dans les datacenters ne fait pas qu'augmenter l'empreinte énergétique liée à la fabrication de ces serveurs, la phase d'utilisation est aussi concernée. Le choix entre l'utilisation de deux serveurs à 50% de leurs capacités ou d'un seul serveur à 100% de ses capacité peut s'avérer intriguant, certains pourraient se poser la question pour identifier la configuration qui consomme le moins. En réalité, la deuxième configuration consomme moins d'énergie que la première. Car même en omettant le coût de production et de transport, utiliser deux serveurs signifie qu'on aura deux fois la consommation Idle, qui est une consommation statique liée aux équipements, puces, systèmes d'opérations (OS), etc.

La consommation Idle des serveurs pour l'utilisation d'un serveur vs deux serveurs



Il s'agit d'une consommation continue de 10 Watts, 20 Watts ou plus selon le type de serveurs, multipliée par le nombre de serveurs dans les datacenters, cette consommation peut très vite grimper. Un autre avantage de la surcharge des serveurs est liée à la gestion des fréquences CPU. Par exemple, si nous disposons d'un cluster Kubernetes constitué de deux nœuds (serveurs), il est plus intéressant d'affecter un nouveau Pod ou un nouveau service au nœud qui est le plus surchargé si la situation le permet, même si ça va à l'encontre du principe du load-balancing. Cela est principalement lié à la gestion dynamique des fréquences processeurs (DVFS: Dynamic Voltage and Frequency Scaling) et le passage entre les différents paliers de fréquences appelés "P-states". Encore un sujet passionnant que je détaillerai dans un prochain article. Stay tuned :)

TLDR:

Utiliser les serveurs de manière "Green" comporte plusieurs critères, comme:

  • Réduire les achats au stricte nécessaire
  • Augmenter la durée de vie des équipements
  • Revoir les besoins pour ne garder que les besoins/services qui servent vraiment
  • Mutualiser les serveurs physiques de manière dynamique et adaptative
  • Déployer une stratégie de décommissionnement des serveurs comateux
  • Revoir les stratégies de load-balancing et jobs scheduling.