Gestion de la mémoire VMware ESXI

L’objectif de cet article est de mieux comprendre les mécanismes de gestion de la mémoire au niveau VMware.

Afin d’optimiser la gestion de la mémoire (RAM), VMware opte pour 4 méthodes qui s’exécutent séquentiellement et par ordre décroissant de performance :

  • Transparent Page Sharing (TPS)
  • Ballooning
  • Compression
  • Swap

Transparent Page Sharing (TPS)

Cela concerne généralement les VMs tournent sur le même Host est qu’ont un système d’exploitation similaire, dans ce cas de figure nous avons plusieurs éléments identiques en mémoire.

La fonctionnalité Transparent Page Sharing consiste à faire des scans toutes les 60 secondes pour identifier les pages mémoires identiques/multiplier et fait la dé-duplication de mémoire pour ne garder qu’une seule page mémoire pour chaque élément.

Cela permet donc d’économiser de la RAM en mutualisant les pages mémoire communs aux différentes VMs.

Il n’y a donc pas de perte de performance autre que celle induite par la virtualisation (temps de la consultation de la table des correspondances pour accéder à la page mémoire demandée).

L’efficacité dépend de deux facteurs :

  • Plus il y aura des éléments communs, plus les pages mémoire peuvent être mutualisées.
  • Plus la taille mémoire par page est élevée, moins il sera possible de mutualiser les pages mémoires.

Ballooning

Le ballooning est un mécanisme gérée par VMware Tools (précisément le pilote vmmemctl) et qui permet à l’ESXi de fournir de la mémoire aux VMs en cas de besoin suite au sur-utilisation de RAM (Overcommitting).

En général, plus un système d’exploitation a de la mémoire à sa disposition, plus il en utilise et pas forcément de manière la plus efficace.

Pour éviter le gaspillage de la mémoire, VMware crée un processus consomme de plus en plus de mémoire et pousse le système à libérer de l’espace.

La mémoire consommée par ce processus pourra être utilisée par d’autres VMs, ceci est possible grâce à l’installation de VMware Tools qui peut agir sur le système d’exploitation à l’aide du balloon driver (vmmemctl).

Compression

Lorsque les méthodes TPS et ballooning sont utilisées et le host a toujours besoin de la mémoire supplémentaire, l’ESX utilise la compression de la mémoire.

Cela consiste scanner les pages mémoire via VMkernel et compresser les pages mémoire qui peuvent être compressées à plus de 50%.

La compression cause une perte de performance suite à la compression et décompression des pages mémoire, cependant il reste plus performant que le swapping.

SWAP

C’est le dernier recours par VMWare, au cas où les mécanismes précédents n’ont pas libérer assez de mémoire.

Le swap consiste à copier sur disque les pages mémoires afin de libérer de la RAM.

Cette méthode est coûteuse en termes de performance et quand le host ESXi commence à utiliser le swap, là c’est la catastrophe côté performance.

A ce stade, il faut commencer à prendre les mesures nécessaires pour augmenter/libérer les ressources mémoires.

Share

You may also like...

Badr Eddine CHAFIQ