Многим пользователям VMware должна быть известна техника Memory Overcommit, которая представляет собой, по-сути, совокупность трех технологий:
Memory Balooning - выдергивание неиспользуемой памяти из гостевой системы и ее передача нуждающимся виртуальным машинам
Технологии использования файлов подкачки (swap) и Memory Compression (появится в следующих релизах vSphere)
Transparent Page Sharing - техника поиска и удаления дубликатов страниц памяти виртуальных машин (остаются только ссылки на них)
Сегодня мы как раз и поговорим о последней технологии - Transparent Page Sharing. По статистике она позволяет экономить до 15% и более оперативной памяти хост-сервера VMware ESX, что, естественно, ведет к большему (по сравнению с другими платформами) коэффициенту консолидации виртуальных машин.
Отчасти, именно благодаря Transparent Page Sharing, продуктам компании VMware удавалось выгодно отличаться от конкурирующих платформ виртуализации. Page Sharing работает со страницами памяти размером 4 килобайта, что практически не влияет на производительность сервера виртуализации.
Так вот, согласно вот этой статье Alessandro Perilli, операционные системы Windows 7 и Windows Server 2008 R2 уже поддерживают технологию Large Memory Pages, которая позволяет использовать страницы памяти размером 2 мегабайта (чувствуете разницу на 2 с половиной порядка?). Кроме того, эта технология поддерживается и в процессорах Intel Nehalem, а также последних моделях AMD Opteron. Так вот исследование показало, что большие страницы памяти Large Memory Pages работают на 20% производительнее маленьких на новом железе. Что позволяет говорить о том, что эта техника использования памяти в операционных системах скоро станет стандартной.
Теперь вернемся к Transparent Page Sharing. Во-первых, подумайте - сколько дубликатов страниц вы найдете, если размер страницы увеличился в 500 раз? Наверное, процент этих страниц будет очень и очень близок к нулю. Во-вторых, по заверениям Microsoft (объяснявшей возможности функций Dynamic Memory в новой версии Hyper-V), процесс исследования двухмегабайтовых страниц памяти побитно, их хэширование и сохранение в таблице учета дубликатов может занять часы!
Данные факты подтверждаются и сотрудником самой VMware, который говорит о том, что ESX не трогает большие страницы:
The only problem is that when large pages is used, Page Sharing needs to find identical 2M chunks (as compared to 4K chunks when small pages is used) and the likelihood of finding this is less (unless guest writes all zeroes to 2M chunk) so ESX does not attempt collapses large pages and thats [sic] why memory savings due to TPS goes down when all the guest pages are mapped by large pages by the hypervisor.
Понимаете о чем это? Это о том, что технология Transparent Page Sharing в ее нынешнем виде может умереть...