Ram Burst avec Dynamic Memory d'Hyper-V, la fin du swap ?
Jusqu’à présent, lorsque le système d’exploitation n’a plus
de mémoire vive disponible, il place les données volatiles des nouveaux
processus sur de la mémoire de masse. Ce procédé s’appelle le swapping. Il
permet donc au système d’exploitation de ne pas planter pendant la période,
généralement courte, où la quantité de mémoire demandée est supérieur à la
quantité de mémoire vive disponible. En revanche, le périphérique de masse a
des temps d’accès et des débits dix à vingt fois plus faible que la mémoire
vive : les performances sont donc en fort déclin.
Avec la nouvelle fonctionnalité apportée par le Service Pack 1 de Windows
Server 2008 R2 : Dynamic Memory, Hyper-V va pouvoir allouer dynamiquement
un surplus de mémoire vive à la machine virtuelle qui va présenter les signes d’une
surconsommation de mémoire vive.
Partons sur un modèle simple, nous avons 16Go de mémoire
vive disponible pour 4 VM, les services que fournissent les VM ont le même poids,
donc chaque machine virtuelle a 4 Go de RAM.
Supposons que notre 4e VM ait à un instant T une forte montée de
charge. Sa consommation en mémoire volatile excède la quantité de mémoire vive
disponible. Le 4e système invité va écrire son surplus dans l’espace
swap qu’il a dédié sur un périphérique de masse : par défaut son disque
dur (virtuel).
Malheureusement, dans cette configuration, toutes les VM ont leur VHD (disque
dur virtuel) stocké sur le même disque dur physique. Donc l’accès au swap de la
VM4 va littéralement saturer le disque dur physique et par la même occasion ralentir
les accès aux disques des VM 1, 2 et 3. De ce fait, avec une seule VM qui
plonge dans le swap, ce sont en réalité 4 VM qui ont des pertes de performances
conséquentes. Et là, c’est une catastrophe.

Si maintenant, nous avons une infrastructure avec la
fonctionnalité Dynamic Memory activée, nous allons allouer 3Go comme quantité
de mémoire vive de départ et 7Go de mémoire vive maximum (3Go de Démarrage + 4Go de mémoire vive restante pour l'hyperviseur).
Supposons qu’une fois de plus, la 4e VM ait une forte montée de
charge. Sa quantité de mémoire vive disponible est inférieure au seuil
préalablement définie dans Hyper-V. De ce fait, l’hyper-V va automatiquement
allouer (à chaud) la quantité de mémoire nécessaire et disponible à la machine
virtuelle en question pour rétablir son quota de RAM disponible.
De ce fait, la machine n’utilise pas de swap, donc n’entrave pas les
performances du disque dur physique au détriment des autres machines virtuelle.
La fonctionnalité Dynamic Memory est donc très utile pour les
surconsommations de mémoire vive qui peuvent être encaissés non plus par le
disque dur mais par la mémoire vive restante à l’hyperviseur.
Ceux qui possèderont le plus de mémoire vive pourront même
se permettre d’interdire le swap aux systèmes invités pour empêcher ce dernier d’utiliser le swap pour
les processus dormants.