AVIS DE SOUTENANCE de Monsieur Yohan PIPEREAU

L’Ecole doctorale : Ecole Doctorale de l’Institut Polytechnique de Paris

et le Laboratoire de recherche SAMOVAR – Services répartis, Architectures, Modélisation, Validation, Administration des Réseaux

présentent

l’AVIS DE SOUTENANCE de Monsieur Yohan PIPEREAU

Autorisé à présenter ses travaux en vue de l’obtention du Doctorat de l’Institut Polytechnique de Paris, préparé à Télécom SudParis en :

Informatique

« Amélioration de l’utilisation de ressources mémoires pour les machines virtuelles »

le JEUDI 14 DÉCEMBRE 2023 à 10h30

à

Amphithéâtre 4
19 Place Marguerite Perey, 91120 Palaiseau

Membres du jury :

M. Gaël THOMAS, Professeur, Télécom SudParis, FRANCE – Directeur de these
M. Pierre SENS, Professeur, Sorbonne Université, FRANCE – Rapporteur
M. Romain ROUVOY, Professeur, l’Université de Lille 1, Sciences et Technologies, FRANCE – Rapporteur
M. Brice GOGLIN, Directeur de recherche, Université de Bordeaux, FRANCE – Examinateur
M. Mathieu BACOU, Maître de conférences, Télécom SudParis, FRANCE – Co-encadrant de these
Mme Stella BITCHEBE, Postdoctoral Researcher, McGill University, CANADA – Examinateur

« Amélioration de l’utilisation de ressources mémoires pour les machines virtuelles »

présenté par Monsieur Yohan PIPEREAU

Résumé :

Les centres de données reposent largement sur les machines virtuelles comme unité de déploiement afin de garantir une isolation forte entre deux déploiements. L’introduction de la virtualisation a permis une amélioration significative de l’utilisation des ressources d’un datacenter par rapport à la location d’une machine physique pour chaque utilisateur. Malgré ce gain, les machines virtuelles offrent toujours un gain d’utilisation de ressources plus faible que l’isolation fournie par le système d’exploitation à travers des processus. Deux phénomènes expliquent le gain relatif des machines virtuelles : au moment de l’allocation d’une VM, un orchestrateur traduit l’allocation en une requête d’allocation de plusieurs ressources sur plusieurs serveurs. Le problème que doit résoudre l’orchestrateur afin de trouver un placement optimal des VMs est NP-difficile, imposant à l’orchestrateur l’utilisation d’heuristiques de placement qui laissent une part de ressource inutilisées sur chaque serveur. De plus, durant l’exécution de la VM, la consommation mémoire augmente à mesure que les accès sont effectués et la différence entre allocation mémoire et utilisation mémoire résulte en un ensemble de ressource mémoire qui ne peuvent être utilisé sans risque de crash de VMs. Dans un premier temps, nous proposons un prototype permettant d’accéder aux ressources mémoires inutilisées sur d’autres serveurs. Notre solution est transparente pour les applications s’exécutant dans une VM et offre une réservation à grain fin des ressources mémoires distantes. Dans un second temps, nous présentons les résultats de notre étude des techniques existantes permettant d’ajuster la capacité mémoire d’une VM sur la mémoire qu’elle utilise. Notre travail montre que les solutions actuelles implémentées au niveau de l’hyperviseur introduisent une dégradation des performances des VMs ainsi que des temps de réponse élevés empêchant le partage des ressources mémoires par plusieurs VMs. Nous proposons une solution utilisant les informations disponibles dans la VM pour adapter rapidement leurs capacités mémoires.

Abstract :

Data-centers rely on virtual machines (VMs) to offer isolation between deployments. While, the use of VMs enables better resource usage compared to running a service per bare-metal machine, it achieves poorer resource usage than multiprocessus solutions. This is caused by two phenomena: At VM allocation time, VMs are scheduled as resource requests on a VM scheduler which perform virtual machine allocations across a set of servers. Optimal solution to this scheduling problem is NP-hard leading to the adoption of heuristic based allocation that let a good percentage of unallocated memory on each server known as `stranded memory`. At VM runtime, VM memory is consumed on-demand and the difference between memory allocation and usage results in a decent portion of `allocated unused memory` currently impractically usable. First, we propose a transparent solution for applications running inside VMs to remotely access stranded memory in remote machines with fine-grained reservation of remote resources. Second, we review current techniques trying to fit allocated memory to used memory. We show that all these techniques are managed by the hypervisor and introduce performance degradation in VMs and more importantly high response time which makes resource sharing unpractical. Instead, we propose an abstraction to perform VM-initiated memory provisioning, and we present early results of fast adaptation of VM memory.