Le système Shenango devrait être utilisé dans les centres de données.
/ photo Marco Verch CC BYSelon l'un des fournisseurs, les centres de données
n'utilisent que 20 à 40% de la puissance de calcul disponible. À des charges élevées, ce chiffre
peut atteindre 60% . Cette répartition des ressources conduit à l'émergence des soi-disant «serveurs zombies». Ce sont des machines qui restent inactives la plupart du temps, gaspillant de l'énergie. Aujourd'hui, 30% des serveurs dans le monde
sont sans travail , consommant de l'électricité à 30 milliards de dollars par an.
Le MIT a décidé de faire face à l'utilisation inefficace des ressources informatiques.
Une équipe d'ingénieurs a
développé un système d'équilibrage de charge pour les processeurs 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 processeur) aux machines libres.
Comment fonctionne Shenango
Shenango est une bibliothèque Linux basée sur C avec des liaisons Rust et C ++. Le code du projet et les applications de test sont publiés dans le
référentiel sur GitHub.
La base de la solution est l'algorithme IOKernel, qui s'exécute sur un noyau dédié d'un système multiprocesseur. Il gère les demandes de processeur à l'aide du cadre
DPDK , qui permet aux applications d'interagir directement avec les périphériques réseau.
IOKernel décide quels noyaux exécuter une tâche particulière. L'algorithme décide également du nombre de cœurs nécessaires. Pour chaque processus, les noyaux principaux (garantis) et supplémentaires (éclatables) sont définis - les seconds sont lancés en cas de forte augmentation du nombre de requêtes au CPU.
La file d'attente de requêtes IOKernel est organisée comme un
tampon en anneau . Toutes les cinq microsecondes, l'algorithme vérifie si toutes les tâches affecté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 de la vérification précédente, le système note la surcharge du tampon et alloue un noyau supplémentaire pour le processus.
Lors de la distribution de la charge, la priorité est donnée aux noyaux sur lesquels le même processus a été effectué plus tôt et est resté partiellement dans le cache, ou à tout noyau inactif.

Shenango adopte en outre une approche de
vol de travail . Les noyaux alloués au fonctionnement d'une application surveillent le nombre de tâches les uns pour les autres. Si un noyau termine sa liste de tâches plus tôt que les autres, il «supprime» une partie de la charge de ses voisins.
Avantages et inconvénients
Selon
les 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 disent que dans certains cas, la technologie peut augmenter à 100% l'utilisation des processeurs dans les centres de données. En conséquence, les opérateurs de centres de données pourront économiser sur l'achat et la maintenance des serveurs.
Des solutions potentielles
sont également
notées par des spécialistes d'autres universités. Selon un professeur de l'Institut coréen, le système du MIT contribuera à réduire les retards dans le travail des services Web. Par exemple, il est utile dans le fonctionnement des boutiques en ligne. Dans les jours de vente, même un deuxième retard dans le chargement des pages
entraîne une diminution de 11% du nombre de vues du site. L'équilibrage de charge en ligne aidera à servir plus de clients.
La technologie présente encore des inconvénients - elle ne prend pas en charge les systèmes
NUMA multiprocesseurs 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 toutes les puces de serveur.
/ photo Tim Reckmann CC BYTechnologie similaire
Parmi les autres systèmes d'équilibrage de charge du processeur, Arachne peut être distingué. Il calcule le nombre de cœurs dont l'application aura besoin au moment de son lancement et répartit les processus en fonction de cet indicateur. Selon les auteurs, la latence d'application maximale à Arachne est d'environ 10 000 microsecondes.
La technologie est implémentée comme une bibliothèque C ++ pour Linux, et son code source est 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, le retard moyen dans l'application 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
dans le domaine public .
Conclusions
Les centres de données modernes continuent de se développer, en particulier la tendance à la hausse est perceptible sur le marché des centres de données hyperscale:
il existe aujourd'hui dans le monde 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 CPU seront très demandées. Des systèmes comme Shenango sont déjà
mis en œuvre par de grandes sociétés et, à l'avenir, le nombre de ces outils ne fera qu'augmenter.
Messages du premier blog d'entreprise IaaS: