Gestion de la mémoire dans un environnement virtuel
Auteur / Autrice : | Aram Kocharyan |
Direction : | Daniel Hagimont, Hrachya Astsatryan |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique et télécommunications |
Date : | Soutenance le 02/07/2019 |
Etablissement(s) : | Toulouse 3 |
Ecole(s) doctorale(s) : | École doctorale Mathématiques, informatique et télécommunications (Toulouse) |
Partenaire(s) de recherche : | Laboratoire : Institut de Recherche en Informatique de Toulouse (1995-....) |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
L'augmentation des besoins en calcul pour les applications modernes (par exemple dans le big data) a conduit au développement d'infrastructures de calcul de moyenne à très grande taille. Dans ce contexte, le cloud est devenu la solution permettant la mutualisation des ressources. De plus en plus d'entreprises ou d'institutions scientifiques mettent en place leur propre structure de cloud privée. Une technologie clé sous-jacente au développement de ces infrastructures est la virtualisation. Les infrastructures virtualisées apportent de nombreux avantages pour la gestion des ressources, mais l'optimisation de la gestion des ressources reste un défi, avec l'objectif d'assurer un taux d'utilisation élevé des ressources matérielles et un faible gaspillage. La consolidation des serveurs a été introduite dans le but d'optimiser ces infrastructures. Le principe est de rassembler les machines virtuelles (VMs) sur un nombre minimal de serveurs, permettant alors de suspendre les serveurs inutilisés. Cependant, les stratégies de consolidation sont complexes à mettre en oeuvre, car elles doivent prendre en compte différents types de ressources (CPU, mémoire, I/O). De plus, l'utilisation de ces ressources peut varier fortement au cours du temps et la consolidation repose sur la migration de VM qui est une opération très lourde. En conséquence, les consolidations sont effectuées à une fréquence relativement faible. Dans cette thèse, nous proposons la conception d'un système de gestion mémoire permettant la mutualisation de la mémoire entre les VMs. Ce système est orthogonal et complémentaire à la consolidation. La première contribution est un système de surveillance qui permet de mesurer le working-set (WS) de chaque VM à l'exécution avec une faible intrusivité. L'étape suivante est de reprendre la mémoire inutilisée par les VMs ayant un petit WS et de l'allouer aux VMs ayant un gros WS pour les aider à surmonter des surcharges mémoire temporaires. Ainsi, nous proposons un système de mutualisation mémoire à la fois local et global, permettant la surveillance de la taille du WS de chaque VM et la mutualisation de la mémoire inutilisée, soit localement (avec des VMs sur le même serveur) ou globalement (avec des VMs sur des serveurs voisins). La solution a été évaluée avec des benchmarks du HPC et du traitement de données massives, et également des applications scientifiques et du big data (Apache Spark). Les résultats démontrent la pertinences des choix effectués.