Retour : VMware ESXi
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.
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
.vswpd'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.
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.
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.
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
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.
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 |
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.
MCTLSZ et SWCUR : du ballooning régulier ou du swap signalent qu'il faut ajouter de la RAM ou déplacer des VM.