Nouveau répartiteur de charge CPU de MIT

Le système Shenango est prévu pour être utilisé dans des centres de données.

Nouveau répartiteur de charge CPU de MIT
/ фото Marco Verch CC BY

Selon un fournisseur, les centres de données utilisé utilisent seulement 20 à 40 % de la capacité de calcul disponible. En période de forte charge, ce chiffre peut atteindre 60 %. Cette répartition des ressources entraîne l'apparition de ce que l'on appelle des « serveurs zombies ». Ce sont des machines qui restent inactives pendant la majeure partie du temps, gaspillant ainsi de l'électricité. Aujourd'hui, 30 % des serveurs dans le monde sont à l'arrêt, consommant de l'électricité pour un coût de 30 milliards de dollars par an.

Pour lutter contre le gaspillage des ressources de calcul, le MIT a décidé de créer

Une équipe d'ingénieurs a développé un système d'équilibrage de charge pour les processeurs appelé Shenango. Son but est de surveiller l'état du buffer de tâches et de redistribuer les processus « bloqués » (qui ne peuvent pas obtenir de temps processeur) vers des machines libres.

Comment fonctionne Shenango

Shenango est une bibliothèque Linux écrite en C avec des bindings en Rust et C++. Le code du projet et les applications de test sont publiés dans dépôts sur GitHub.

La solution repose sur l'algorithme IOKernel, qui s'exécute sur un cœur dédié d'un système multiprocesseur. Il gère les demandes de CPU grâce à un cadre DPDK, qui permet aux applications d'interagir directement avec les dispositifs réseau.

IOKernel détermine à quels cœurs attribuer une tâche spécifique. L'algorithme décide également du nombre de cœurs nécessaires. Pour chaque processus, des cœurs principaux (guaranteed) et supplémentaires (burstable) sont définis — les seconds étant lancés en cas d'augmentation brutale du nombre de demandes au CPU.

La file d'attente des demandes d'IOKernel est organisée sous forme de tampon circulaire. Toutes les cinq microsecondes, l'algorithme vérifie si toutes les tâches assignées à un cœur ont été exécutées. Pour ce faire, il compare l'emplacement actuel de la « tête » du tampon avec la position précédente de sa « queue ». Si la queue était déjà dans la file au moment de la précédente vérification, le système signale une surcharge du tampon et alloue un cœur supplémentaire au processus.

Lors de la répartition de la charge, la priorité est donnée aux cœurs sur lesquels un tel processus a déjà été exécuté et qui sont partiellement restés dans le cache, ou à tout cœur inactif.

Nouveau répartiteur de charge CPU de MIT

Shenango utilise également l'approche du vol de travailLes cœurs alloués au fonctionnement d'une application surveillent le nombre de tâches des uns et des autres. Si un cœur termine sa liste de tâches plus tôt que les autres, il « déleste » une partie de la charge sur ses voisins.

Avantages et inconvénients

Selon propos Des ingénieurs du MIT, Shenango est capable de traiter cinq millions de requêtes par seconde et de maintenir un temps de réponse moyen de 37 microsecondes. Les spécialistes affirment que, dans certains cas, la technologie peut augmenter le coefficient d'utilisation des processeurs dans les centres de données jusqu'à 100 %. En conséquence, les opérateurs de centres de données pourront économiser sur l'achat et la maintenance des serveurs.

Le potentiel de la solution note et des spécialistes d'autres universités. Selon un professeur d'un institut coréen, le système du MIT aidera à réduire les délais de fonctionnement des services web. Par exemple, il sera utile pour le fonctionnement des magasins en ligne. Lors des jours de vente, même un retard d'une seconde lors du chargement de la page entraîne également peut entraîner une réduction du nombre de vues du site de 11 %. Une distribution rapide de la charge aidera à servir plus de clients.

La technologie a encore des inconvénients - elle ne prend pas en charge les systèmes NUMA-multiprocesseurs, où les puces sont connectées à différents modules de mémoire et ne « communiquent » pas entre elles. Dans ce cas, IOKernel peut réguler le fonctionnement d'un groupe séparé de processeurs, mais pas de toutes les puces du serveur.

Nouveau répartiteur de charge CPU de MIT
/ фото Tim Reckmann CC BY

Des technologies analogues

Parmi d'autres systèmes d'équilibrage de la charge sur les processeurs, on peut citer Arachne. Elle calcule combien de cœurs une application aura besoin au moment de son lancement et répartit les processus en fonction de ce paramètre. Selon les auteurs, le retard maximum du fonctionnement de l'application dans Arachne est d'environ 10 000 microsecondes.

La technologie est implémentée sous la forme d'une bibliothèque C++ pour Linux, et son code source est disponible sur GitHub.

Un autre outil d'équilibrage — ZygOS. Comme Shenango, la technologie utilise pour la redistribution des processus la méthode du vol de travail. Selon les auteurs de ZygOS, le retard moyen dans le fonctionnement des applications lors de l'utilisation de l'outil est d'environ 150 microsecondes, et le maximum — d'environ 450 microsecondes. Le code du projet est également disponible en accès libre..

Conclusions

Les centres de données modernes continuent de s'étendre, particulièrement la tendance à l'augmentation est marquée sur le marché des centres de données hyperscale : actuellement dans le monde existe 430 centres de données hyperscale, mais leur nombre pourrait augmenter de 30 % dans les années à venir. Pour cette raison, les technologies de répartition de charge des processeurs seront très recherchées. Des systèmes comme Shenango sont déjà mis en œuvre par de grandes entreprises, et dans le futur, le nombre de tels outils ne fera qu'augmenter.

Articles du premier blog sur l'IaaS d'entreprise :

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster