Memory management in a virtual environment - Archive ouverte HAL Access content directly
Theses Year : 2019

Memory management in a virtual environment

Gestion de la mémoire dans un environnement virtuel

(1)
1

Abstract

The increasing computation needs of modern applications led to the development of medium to large scale computer infrastructures. Cloud computing became a key solution for resource mutualization. More and more enterprises and scientific institutions set-up their own private cloud facilities. The key technology behind the development of these infrastructures is virtualization. Virtualized infrastructures bring many advantages for resource management, but resource optimization is still a challenge, for ensuring high hardware utilization and low waste. Server consolidation was introduced for optimizing such infrastructures. Its principle is to gather VMs on as less servers as possible, thus allowing unused servers to be suspended. However, consolidation strategies have to take into account many types of resource (CPU, memory, I/O) thus inducing a high complexity. Additionally, these resources may be fluctuating at runtime and consolidation relies on VM migration which is a heavy operation. Therefore, consolidations are performed infrequently. In this thesis, we propose the design of a memory management system which allows mutualizing memory between VMs. This system is orthogonal and complementary to consolidation. The first issue is to design a monitoring system that should track the working set of the VMs at runtime with low intrusiveness. The next important step is to reclaim unused memory from under-loaded VMs and finally grant it to over-loaded VMs to help them to overcome temporary memory difficulties. As a result, it is proposed a both local and global memory mutualization system which allows to monitor the working set size of each VM and to mutualize unused memory, either locally (with the VMs located on the same node) or globally (with the VMs located on neighbor nodes). The solution has been evaluated with modern HPC, data intensive benchmarks as well as scientific and Big Data (Apache Spark) applications. The results demonstrate the effectiveness of our design choices.
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.
Fichier principal
Vignette du fichier
2019TOU30089B.pdf (1.64 Mo) Télécharger le fichier
Origin : Version validated by the jury (STAR)
Loading...

Dates and versions

tel-02880142 , version 1 (24-06-2020)

Identifiers

  • HAL Id : tel-02880142 , version 1

Cite

Aram Kocharyan. Memory management in a virtual environment. Networking and Internet Architecture [cs.NI]. Université Paul Sabatier - Toulouse III, 2019. English. ⟨NNT : 2019TOU30089⟩. ⟨tel-02880142⟩
90 View
255 Download

Share

Gmail Facebook Twitter LinkedIn More