13 окт. 2010 г.

Технология Page Fusion в VirtualBox 3.2

Page Fusion это новая технология для увеличения плотности размещения виртуальных машин на хосте, другими словами это способ выделения больших ресурсов чем есть (overcommitting). Данная технология была реализована в VirtualBox версии 3.2 и в настоящее время поддерживается для гостевых систем Windows 2000 и старше. На практике, обычно от десятка до сотен однотипных ВМ запускаются на мощном хосте и их количество, часто ограничивается размером памяти которая может быть установлена в системе. Обычно, когда свободной памяти нет, невозможно запустить дополнительные ВМ и при этом возможно, что вычислительные ресурсы хоста еще имеют резерв. Для обхода этого ограничения, можно предположить, что если мы имеем множество схожих ВМ (например, в виртуалных машинах используется множество Windows XP) то имеется некоторое количество ячеек памяти с идентичной информацией. Гипервизор может найти эти дублируемые данные в памяти, и предпринять меры для получения дополнительной свободной памяти.

Современные гипервизоры (мониторы или менеджеры виртуальных машин) используют метод, известный как "page sharing" или "same page merging". Гипервизор просматриват всю память и вычисляет котрольные суммы каждой страницы памяти (hashes). Далее находятся страницы с идентичными суммами и сравнивается их содержимое (если две страницы имеют одинаковую контрольную сумму, то велика вероятность идентичности их содержимого). Память виртуальных машин, перестраивается так, что совпадающие области ссылаются на одну и ту же страницу (дублируемые освобождаются), пока одна из ВМ не попытается изменить ее содержимое. В случае изменения ее содержимого, память для этой страницы выделяется снова. Данный механизм прозрачен для ВМ. Однако, этот механизм имеет несколько недостатков. Во первых, полное сканирование памяти занимает довольно продолжительное время (особенно если хост машина не простаивает), т.е. освобожденная память может стать доступной, только через некторое время (от нескольких часов и даже дней!). Кроме того, этот алгоритм использует ресурсы процессора, приводящие к дополнительным накладным расходам хоста, достигающим 10-20%.

Технология Page Fusion в VirtualBox использует гостевые дополнения (VirtualBox Guest Additions), что бы найти области памяти с наибольшей вероятностью идентичности их содержимого, используя для этого ресурсы виртуальных машин, что позволяет снизить время поиска и накладные расходы на виртуализацию.

Этот механиз может быть включен для ВМ, командой:

VBoxManage modifyvm "ИмяВМ" --pagefusion on

Вы можете наблюдать за работой Page Fusion используя механизм метрик. Метрика RAM/VMM/Shared отображает общий размер совместно используемой памяти, а метрика виртуальной машины Guest/RAM/Usage/Shared размер используемой общей памяти для данной ВМ. Ознакомтесь с разделом VBoxManage metrics для получении дополнительной информации.

Замечание

VirtualBox поддерживается Page Fusion только на хостах с 64-битными операционными системами. На хостах с Mac OS X в настоящее время не работает. Технология Page Fusion доступна только для гостей Windows начиная с версии 2000 и старше.


Оригинальная статья

Комментариев нет:

Архив блога