Nouvel équilibreur de charge CPU MIT

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


/ photo Marco Verch CC BY

Selon 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 BY

Technologie 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:

Source: https://habr.com/ru/post/fr447058/


All Articles