Nouvel équilibreur de charge CPU du MIT

Le système Shenango devrait être utilisé dans les centres de données.

Nouvel équilibreur de charge CPU du MIT
/ photo Marco Verch CC BY

Selon l'un des fournisseurs, les centres de données utiliser seulement 20 à 40 % de la puissance de calcul disponible. À des charges élevées, cet indicateur peut atteindre 60%. Cette répartition des ressources conduit à l'émergence de ce que l'on appelle des « serveurs zombies ». Ce sont des machines qui restent inutilisées la plupart du temps, gaspillant ainsi de l’énergie. Aujourd'hui 30% des serveurs dans le monde sont sans travail, consommant 30 milliards de dollars d’électricité par an.

Le MIT a décidé de lutter contre l'utilisation inefficace des ressources informatiques.

Équipe d'ingénierie a développé système d'équilibrage de charge du processeur appelé Shenango. Son objectif est de surveiller l'état du tampon de tâches et de redistribuer les processus bloqués (qui ne peuvent pas recevoir de temps CPU) vers les machines libres.

Comment fonctionne Shenango

Shenango est une bibliothèque Linux en C avec des liaisons Rust et C++. Le code du projet et les applications de tests sont publiés dans référentiels sur GitHub.

La solution est basée sur l'algorithme IOKernel, qui s'exécute sur un cœur dédié d'un système multiprocesseur. Il gère les requêtes CPU à l'aide d'un framework DPDKName, qui permet aux applications de communiquer directement avec les périphériques réseau.

L'IOKernel décide à quels noyaux déléguer une tâche spécifique. L'algorithme décide également du nombre de cœurs nécessaires. Pour chaque processus, les cœurs principaux (garantis) et supplémentaires (burstables) sont déterminés - ces derniers sont lancés en cas de forte augmentation du nombre de requêtes vers le CPU.

La file d'attente des requêtes IOKernel est organisée comme tampon annulaire. Toutes les cinq microsecondes, l'algorithme vérifie si toutes les tâches assignées au noyau sont terminées. Pour ce faire, il compare l'emplacement actuel de la tête du tampon avec la position précédente de sa queue. S'il s'avère que la queue était déjà dans la file d'attente au moment du contrôle précédent, le système constate la surcharge du tampon et alloue un cœur supplémentaire pour le processus.

Lors de la répartition de la charge, la priorité est donnée aux cœurs sur lesquels le même processus a été exécuté plus tôt et est resté partiellement dans le cache, ou aux éventuels cœurs inactifs.

Nouvel équilibreur de charge CPU du MIT

Shenango prend également le chemin vol de travail. Les cœurs alloués pour exécuter une application surveillent le nombre de tâches que chacun accomplit. Si un noyau termine sa liste de tâches avant les autres, alors il « soulage » une partie de la charge de ses voisins.

Avantages et inconvénients

Sur СЃР »РѕРІР ° Рј 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 experts affirment que dans certains cas, la technologie peut augmenter le taux d'utilisation des processeurs dans les centres de données jusqu'à 100 %. Ainsi, les opérateurs de centres de données pourront économiser sur l'achat et la maintenance des serveurs.

Potentiel de solution célébrer et des spécialistes d'autres universités. Selon un professeur d'un institut coréen, le système du MIT contribuera à réduire les retards dans les services Web. Par exemple, cela sera utile dans les magasins en ligne. Les jours de soldes, il y a même un deuxième retard dans le chargement des pages приводит à une diminution du nombre de visites du site de 11%. Une répartition rapide de la charge aidera à servir davantage de clients.

La technologie présente encore des inconvénients : elle ne prend pas en charge le multiprocesseur NUMA-les systèmes dans lesquels 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 distinct de processeurs, mais pas de toutes les puces du serveur.

Nouvel équilibreur de charge CPU du MIT
/ photo Tim Reckman CC BY

Technologies similaires

D'autres systèmes d'équilibrage de charge de processeur incluent Arachne. Il calcule le nombre de cœurs dont une application aura besoin au démarrage et répartit les processus en fonction de cet indicateur. Selon les auteurs, la latence maximale d'une application dans Arachne est d'environ 10 XNUMX microsecondes.

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

Un autre outil d'équilibrage est ZygOS. Comme Shenango, la technologie utilise la méthode du vol de travail pour redistribuer les processus. Selon les auteurs de ZygOS, la latence moyenne des applications lors de l'utilisation de l'outil est d'environ 150 microsecondes et le maximum est d'environ 450 microsecondes. Le code du projet est également est dans le domaine public.

résultats

Les centres de données modernes continuent de se développer. Cette tendance à la hausse est particulièrement visible sur le marché des centres de données hyperscale : désormais dans le monde il y a 430 centres de données hyperscale, mais dans les années à venir, leur nombre pourrait augmenter de 30 %. Pour cette raison, les technologies d’équilibrage de charge des processeurs seront très demandées. Des systèmes comme Shenango sont déjà disponibles mettre en œuvre grandes entreprises, et le nombre de ces outils ne fera qu'augmenter à l'avenir.

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

Source: habr.com

Ajouter un commentaire