ESXi virtualise la mémoire physique invité en ajoutant un niveau supplémentaire de translation d'adresse.

  • VMM conserve les mappages de pages combinés virtuel-machine dans les tables de pages fantômes. Les tables de page fantômes sont tenues à jour avec les mappages virtuel-physique et physique-machine du système d'exploitation invité conservés par VMM.

  • VMM intercepte les instructions de machine virtuelle manipulant les structures de gestion de la mémoire du système d'exploitation client afin que l'unité de gestion de la mémoire (MMU) réelle du processeur ne soit pas directement mise à niveau par la machine virtuelle.

  • Les tables de page fantômes sont directement utilisées par le matériel de pagination du processeur.

  • Il existe un calcul non négligeable de la capacité supplémentaire en vue de conserver la cohérence des tables de pages fantômes. La capacité supplémentaire est plus prononcée à mesure que le nombre de CPU virtuels augmente.

Cette approche de traitement de la translation permet d'accéder normalement à la mémoire de la machine virtuelle afin qu'elle s'exécute sans ajouter de supplément de translation d'adresse, une fois que les tables de page fantôme sont configurées. Le tampon de traduction (TLB) du processeur met en cache les mappages directs virtuel vers machine lus depuis les tables de page fantôme ; aucun supplément n'est donc ajouté par VMM pour accéder à la mémoire. Notez qu'une MMU logicielle présente des besoins en mémoire supplémentaire plus importants qu'une MMU matérielle. Pour cette raison, pour prendre en charge une MMU logicielle, il convient d'augmenter la charge maximale admise pour les machines virtuelles dans VMkernel. Dans certains cas, la virtualisation de mémoire logicielle peut présenter certains avantages en termes de performances par rapport à l'approche assistée par le matériel si la charge de travail entraîne une grande quantité de pertes TLB.

Considérations de performances

L'utilisation de deux ensembles de tables de pages influe sur les performances de la manière suivante.

  • Aucun supplément n'est appliqué pour l'accès normal à la mémoire client.

  • Un temps supplémentaire est nécessaire pour mapper la mémoire dans une machine virtuelle, ce qui peut se produire quand :

    • Le système d'exploitation de la machine virtuelle configure ou met à niveau des mappages d'adresse virtuelle vers adresse physique.

    • Le système d'exploitation de la machine virtuelle commute d'un espace d'adressage à l'autre (commutation contextuelle).

  • Au même titre que la virtualisation de CPU, le supplément de virtualisation de mémoire dépend de la charge de travail.