Un nouveau système conçu par des chercheurs du MIT améliore l'efficacité des opérations à grande vitesse dans les centres de données en affectant mieux le traitement des données sensibles au temps entre les cœurs de processeur et en garantissant que le matériel fonctionne de manière productive. Crédit :Massachusetts Institute of Technology
Les datacenters d'aujourd'hui consomment et gaspillent une bonne quantité d'énergie à répondre le plus rapidement possible aux demandes des utilisateurs, avec seulement quelques microsecondes de retard. Un nouveau système développé par des chercheurs du MIT améliore l'efficacité des opérations à grande vitesse en affectant mieux le traitement des données sensibles au temps entre les cœurs de l'unité centrale de traitement (CPU) et en garantissant que le matériel fonctionne de manière productive.
Les centres de données fonctionnent comme des réseaux distribués, avec de nombreuses applications web et mobiles implémentées sur un seul serveur. Lorsque les utilisateurs envoient des demandes à une application, des bits de données stockées sont extraits de centaines ou de milliers de services sur autant de serveurs. Avant d'envoyer une réponse, l'application doit attendre le service le plus lent pour traiter les données. Ce temps de latence est connu sous le nom de latence de queue.
Les méthodes actuelles pour réduire les latences de queue laissent des tonnes de cœurs de processeur dans un serveur ouverts pour gérer rapidement les demandes entrantes. Mais cela signifie que les cœurs restent inactifs la plupart du temps, tandis que les serveurs continuent à utiliser de l'énergie juste pour rester sous tension. Les centres de données peuvent contenir des centaines de milliers de serveurs, Ainsi, même de petites améliorations de l'efficacité de chaque serveur peuvent économiser des millions de dollars.
Alternativement, certains systèmes réaffectent les cœurs entre les applications en fonction de la charge de travail. Mais cela se produit en quelques millisecondes, soit environ un millième de la vitesse souhaitée pour les demandes rapides d'aujourd'hui. Attendre trop longtemps peut également dégrader les performances d'une application, car toute information qui n'est pas traitée avant un temps imparti n'est pas envoyée à l'utilisateur.
Dans un article présenté à la conférence USENIX Networked Systems Design and Implementation la semaine prochaine, les chercheurs ont développé un système d'allocation de cœurs plus rapide, appelé Shenango, qui réduit les latences de queue, tout en atteignant des rendements élevés. D'abord, un nouvel algorithme détecte quelles applications ont du mal à traiter les données. Puis, un composant logiciel alloue des cœurs inactifs pour gérer la charge de travail de l'application.
« Dans les centres de données, il y a un compromis entre efficacité et latence, et vous devez vraiment réaffecter les cœurs à une granularité beaucoup plus fine que chaque milliseconde, " dit la première auteure Amy Ousterhout, un doctorat étudiant au Laboratoire d'Informatique et Intelligence Artificielle (CSAIL). Shenango permet aux serveurs de « gérer des opérations qui se produisent à des échelles de temps très courtes et de le faire efficacement ».
Les économies d'énergie et de coûts varient selon le centre de données, selon la taille et la charge de travail. Mais l'objectif global est d'améliorer l'utilisation du processeur du centre de données, afin que chaque noyau soit utilisé à bon escient. Les meilleurs taux d'utilisation du processeur se situent aujourd'hui à environ 60 %, mais les chercheurs disent que leur système pourrait potentiellement augmenter ce chiffre à 100 %.
« L'utilisation du centre de données est aujourd'hui assez faible, " dit le co-auteur Adam Belay, professeur assistant en génie électrique et informatique et chercheur au CSAIL. « C'est un problème très grave [qui ne peut pas] être résolu en un seul endroit dans le centre de données. Mais ce système est un élément essentiel pour augmenter l'utilisation. »
Rejoindre Ousterhout et Belay sur le papier sont Hari Balakrishnan, le professeur titulaire de la chaire Fujitsu au Département de génie électrique et d'informatique, et CSAIL Ph.D. étudiants Jonathan Behrens et Joshua Fried.
Détection efficace des encombrements
Dans un centre de données réel, Shenango (algorithme et logiciel) fonctionnerait sur chaque serveur d'un centre de données. Tous les serveurs pourraient communiquer entre eux.
La première innovation du système est un nouvel algorithme de détection de congestion. Toutes les cinq microsecondes, l'algorithme vérifie les paquets de données mis en file d'attente pour le traitement de chaque application. Si un paquet attend toujours depuis la dernière observation, l'algorithme note qu'il y a au moins un délai de 5 microsecondes. Il vérifie également si des processus de calcul, appelés fils, attendent d'être exécutés. Si c'est le cas, le système considère qu'il s'agit d'une application « encombrée ».
Cela semble assez simple. Mais la structure de la file d'attente est importante pour parvenir à une détection de congestion à l'échelle de la microseconde. La pensée traditionnelle signifiait que le logiciel vérifie l'horodatage de chaque paquet de données en file d'attente, ce qui prendrait trop de temps.
Les chercheurs implémentent les files d'attente dans des structures efficaces appelées « tampons annulaires ». Ces structures peuvent être visualisées sous la forme de différentes fentes autour d'un anneau. Le premier paquet de données entré entre dans un créneau de départ. Au fur et à mesure que de nouvelles données arrivent, ils sont déposés dans les emplacements suivants autour du ring. D'habitude, ces structures sont utilisées pour le traitement des données premier entré, premier sorti, extraire les données de l'emplacement de départ et travailler vers l'emplacement de fin.
Le système des chercheurs, cependant, ne stocke que brièvement les paquets de données dans les structures, jusqu'à ce qu'une application puisse les traiter. En attendant, les paquets stockés peuvent être utilisés pour des contrôles d'encombrement. L'algorithme n'a besoin de comparer que deux points dans la file d'attente - l'emplacement du premier paquet et l'endroit où le dernier paquet était il y a cinq microsecondes - pour déterminer si les paquets rencontrent un retard.
"Vous pouvez regarder ces deux points, et suivre leur progression toutes les cinq microsecondes, pour voir combien de données ont été traitées, " dit Fried. Parce que les structures sont simples, "vous n'avez à le faire qu'une fois par cœur. Si vous regardez 24 cœurs, vous faites 24 contrôles en cinq microsecondes, qui s'adapte bien."
Allocation intelligente
La deuxième innovation s'appelle le IOKernel, le hub logiciel central qui dirige les paquets de données vers les applications appropriées. L'IOKernel utilise également l'algorithme de détection de congestion pour allouer rapidement des cœurs aux applications encombrées des ordres de grandeur plus rapidement que les approches traditionnelles.
Par exemple, le IOKernel peut voir un paquet de données entrant pour une certaine application qui nécessite des vitesses de traitement de la microseconde. Si l'application est encombrée en raison d'un manque de cœurs, l'IOKernel consacre immédiatement un noyau inactif à l'application. S'il voit également une autre application exécuter des cœurs avec des données moins urgentes, il récupérera certains de ces cœurs et les réaffectera à l'application encombrée. Les applications elles-mêmes sont également utiles :si une application ne traite pas de données, il alerte l'IOKernel que ses cœurs peuvent être réaffectés. Les données traitées retournent à l'IOKernel pour envoyer la réponse.
"L'IOKernel se concentre sur les applications qui ont besoin de cœurs qui n'en ont pas, " Behrens dit. " Il essaie de comprendre qui est surchargé et a besoin de plus de cœurs, et leur donne des carottes le plus rapidement possible, afin qu'ils ne prennent pas de retard et n'aient pas d'énormes latences."
La communication étroite entre l'IOKernel, algorithme, applications, et le matériel du serveur est "unique dans les centres de données" et permet à Shenango de fonctionner de manière transparente, Belay déclare :« Le système a une visibilité globale sur ce qui se passe sur chaque serveur. Il voit le matériel fournissant les paquets, qu'est-ce qui s'exécute où dans chaque noyau, et à quel point chacune des applications est occupée. Et il le fait à l'échelle de la microseconde."
Prochain, les chercheurs affinent Shenango pour la mise en œuvre d'un centre de données dans le monde réel. Faire cela, ils s'assurent que le logiciel peut gérer un débit de données très élevé et dispose de fonctionnalités de sécurité appropriées.