Retour : VMware ESXi

Principe

ESXi autorise la surallocation de la mémoire : la somme de la RAM des VM peut dépasser la RAM physique. Quand la mémoire vient à manquer, l'hôte récupère de la RAM avec des techniques de plus en plus coûteuses :

Ordre Technique Coût pour les performances
1 Partage de pages (TPS) Nul
2 Ballooning Faible : l'invité choisit lui-même la mémoire à libérer
3 Compression Moyen
4 Swap de l'hyperviseur Fort : la mémoire de la VM part sur disque

⚠️ Le swap de l'hyperviseur doit rester exceptionnel. Garder la somme des réservations et de la consommation réelle sous la RAM physique.


Réservation, limite et parts

VM → Modifier les paramètres → Mémoire :

Réglage Effet Recommandation
Taille RAM vue par l'invité D'après la consommation observée
Réservation RAM physique garantie à la VM VM critiques ou sensibles à la latence ; cocher Réserver toute la mémoire invité pour les VM en passthrough
Limite Plafond de RAM physique utilisable Laisser « Illimité » : une limite inférieure à la taille provoque du ballooning et du swap permanents
Parts Priorité relative en cas de contention Normales ; Élevées pour les VM prioritaires

💡 Le fichier d'échange .vswp d'une VM a pour taille mémoire configurée − réservation : réserver toute la mémoire d'une VM supprime son fichier d'échange et libère cet espace sur le datastore.

Ajout de mémoire à chaud

Modifier les paramètres → Mémoire → Ajout de mémoire à chaud (VM arrêtée pour activer l'option) : permet ensuite d'augmenter la RAM sans arrêter la VM, si l'invité le prend en charge.


Les techniques de récupération

Partage de pages (TPS)

ESXi fusionne les pages mémoire identiques. Pour des raisons de sécurité, le partage entre VM est désactivé par défaut : il ne s'applique qu'à l'intérieur de chaque VM.

Ballooning

Le pilote vmmemctl, fourni par les VMware Tools (ou open-vm-tools sous Linux), « gonfle » dans l'invité pour forcer celui-ci à libérer la mémoire qu'il utilise le moins.

⚠️ Sans VMware Tools, pas de ballooning : l'hôte passe directement à la compression et au swap. Installer les VMware Tools dans toutes les VM.

# Linux : vérifier la présence du pilote et des outils
lsmod | grep vmw_balloon
systemctl status open-vm-tools

Compression et swap

Avant d'envoyer une page sur disque, ESXi tente de la compresser en mémoire. En dernier recours, il utilise le fichier .vswp de la VM.

💡 Un SSD peut être configuré comme cache d'échange de l'hôte (Hôte → Gérer → Système → Échange) pour limiter l'impact du swap.


État mémoire de l'hôte

ESXi classe la mémoire libre en états qui déclenchent les techniques de récupération :

État Mémoire libre Action
High Confortable Partage de pages uniquement
Clear Seuil intermédiaire Partage de pages renforcé
Soft Faible Ballooning
Hard Très faible Compression et swap
Low Critique Swap et blocage de l'allocation mémoire des VM

Analyser avec esxtop

En SSH sur l'hôte :

esxtop

Touche m (vue mémoire). Colonnes utiles :

Colonne Signification Alerte si
MEMSZ Mémoire configurée de la VM —
GRANT Mémoire physique accordée —
MCTLSZ Mémoire récupérée par ballooning > 0 de façon durable
ZIP/s Pages compressées par seconde > 0
SWCUR Mémoire actuellement en swap > 0
SWR/s / SWW/s Lectures / écritures en swap par seconde > 0 : dégradation forte

L'en-tête indique l'état mémoire de l'hôte (high, clear, soft…).

Dans le Host Client : Hôte → Surveiller → Performances → Mémoire, et VM → Surveiller pour chaque machine.


Bonnes pratiques