Virtualized MMU, RVI & TPS

Traduction : Nous allons parler aujourd’hui de virtualized MMU (Memory Management Unit), de RVI (Rapid Virtualization Indexing) et de TPS (Transparent Page Sharing).

Tout d’abord, nous vous conseillons vivement de consulter (si ce n’est pas déjà fait) le pdf de Carl A. Waldspurger sur les différentes techniques de “conservation” de la mémoire utilisé par VMware ESX.

Ce document traite notamment de l’un des points fort d’ESX, le Transparent Page Sharing. Pour faire simple, cette fonction fait pointer des pages mémoires identiques (aux seins de différentes VM) vers une page physique.

Voici l’exemple d’un host ESX 3.5 hébergeant 70 VM (presque toutes sous Windows 2003) qui ont 25Go de pages mémoire en commun. Ces 25Go n’occupent que 4Go de RAM physiquement :

D’après VMware, l’overhead de cette fonction n’excéderait pas 1%.

Malheureusement, d’après la récente expérience de Duncan le TPS ne ferait pas bon ménage avec le RVI.

Le RVI (fonctionnalité des CPU AMD) est considéré comme le second niveau de virtualisation matériel. Il permet une accélération matériel de la gestion des transactions vRAM <> pRAM (MMU). En effet, la gestion RAM physique/RAM virtuelle (dans les VM) est traditionnellement gérée de façon logiciel par l’hyperviseur. le RVI permet donc de s’affranchir du coût CPU qu’engendre cette gestion (virtualized MMU).

Jason nous en explique un peu plus sur le fonctionnement du RVI sur son blog et nous informe que la version d’Intel (l’EPT) de cette technologie devrait être disponible dans le courant de l’année.

A la demande de Duncan, Carl nous explique que le RVI fonctionne majoritairement en mode “large pages” (2Mo) ce qui n’est pas compatible avec le TPS (qui ne fonctionne que sur des pages de 4ko).

Cette explication est d’ailleurs confirmée par un white paper VMware sur l’utilisation des “larges pages” :

In ESX Server 3.5 and ESX Server 3i v3.5, large pages cannot be shared as copy‐on‐write pages. This means, the ESX Server page sharing technique might share less memory when large pages are used instead of small pages.

Nous ignorons encore de quelle différence il est question mais le véritable problème est une possible dégradation de performance en cas de memory overcommit trop important:

When free machine memory is low and before swapping happens, the ESX Server kernel attempts to share identical small pages even if they are parts of large pages. As a result, the candidate large pages on the host machine are broken into small pages.

Tags: , , , ,

One Response to “Virtualized MMU, RVI & TPS”

  1. [...] en parlions il y a quelques temps déjà, le TPS ne fonctionne pas lorsque vMMU est pris en charge matériellement (RVI ou EPT) à cause des [...]

Leave a Reply