В прошлом году компания AMD анонсировала технологию Rapid Virtualization Indexing (RVI), известную также как Nested Page Tables. Если быть кратким то эта технология позволяет виртуализовать страницы памяти и отдать их под прямой контроль гостевой системы, не затрагивая (и, соответственно, не перегружая) гипервизор. С аналогичной технологией в 2009 году вышла и компания Intel, выпустив Extended Page Tables (EPT) в линейке процессоров Xeon 5500.
Аппаратная виртуализация, понятное дело, сегодня работает уже быстрее быстрее программной. А эти две технологии помогают уменьшить потери производительности на поддержание виртуализации. В частности, у процессора с поддержкой Intel VT есть 2 типа инструкций для передачи управления гостевой ОС и взятия его на себя - VMEXIT и VMENTRY:
Какой у этой картинки смысл: когда гостевой ОС нужно что-то начать делать, она отдает команду VMLAUNCH и начинает исполнять свой код, пользуясь далее инструкцией VMRESUME. Однако при операциях с памятью, гостевая ОС должна заморачиваться через монитор виртуальных машин (VMM) для управления памятью (этот механизм называется Shadow Paging). С использованием же
Extended Page Tables (EPT) - гостевая ОС может сама управляться со страницами памяти, включая контроль Page Faults, которые, кстати, проходят через гипервизор и вызывают VMEXIT. Инструкция VMEXIT - это по сути передача управления Монитору виртуальных машин гипервизора, от которого ожидаются какие-то действия. Понятно, что чем меньше вызовов VMEXIT - тем лучше.
Кроме того, компания Intel уменьшила также задержки на выполнение инструкции VMEXIT в процессорах Intel Nehalem, добившись чудес производительности:
Таким, образом уже в скором будущем потерь производительности на поддержание виртуализации почти совсем не будет и уже сегодня они не превышают 5-10% в большинстве платформ виртуализации. Если говорить о лидере, VMware, то ее продукт VMware ESX платформы vSphere поддерживает обе технологии, AMD RVI и Intel EPT. В этом документе VMware можно посмотреть результаты внутреннего тестирования технологии Intel EPT, где она показывает вполне хороший прирост производительности (для Citrix XenApp вообще 30%):