В настоящее время я использую VMware vSphere 5 на сервере, который использую для различных проектов. В основном я использую его для оттачивания навыков администрирования и запуска нескольких игровых серверов.
Недавно я рассматривал возможность перехода на Xen (xen.org) или, возможно, на Citrix XenServer (бесплатная версия).
Когда я рассматривал различные функции, не включенные в XenServer, я заметил, что одна функция, которая не была включена, - это чрезмерное использование памяти. Насколько мне известно, это было / есть на VMware vSphere. Проблема в том, что, поскольку я использовал VMware в небольшой среде (1 сервер), я даже не уверен, использовал ли я избыточную память.
Так что мне отчасти интересно, что это такое (перегрузка памяти) и как мне узнать, использовал я это или нет?
Память превышает выделение означает, что запущенным виртуальным машинам будет назначено больше ОЗУ (в целом), чем есть на самом деле.
Итак, добавьте оперативную память в свою виртуальную машину, которую вы хотите запускать одновременно, затем оставьте место для гипервизора, и если общая сумма меньше, чем физическая оперативная память, вы не переусердствуете.
В Xen есть приемы управления динамической памятью, а именно раздувание и самовоздух.
Оно делает не поддержка избыточной памяти, поскольку не позволяют виртуальным машинам фактически использовать больше памяти, чем физически доступно в вашей системе.
Другими словами: с Xen вам нужно физически разделить свою оперативную память между виртуальными машинами, но вы все равно можете динамически настраивать эти разделы во время выполнения без перезагрузки виртуальных машин.
VMware vSphere Hypervisor, с другой стороны, может также дайте вашим виртуальным машинам больше оперативной памяти, чем у вас есть физически, заменив ее на диск, если ее недостаточно настоящий ram (путем раздува других виртуальных машин и т.п.).
PS, в качестве примечания, Xen также имеет совершенно другую технологию в Trascendent Memory: поддерживающие ее виртуальные машины (Linux> = 3.0 AFAIK) могут использовать ее для различных целей (в основном в качестве кеша страниц, уменьшая количество операций ввода-вывода в секунду для реальных дисков).
В VMware ESX и ESXi, если вы установите VMware Tools, они включат драйвер управления памятью, также известный как драйвер баллона.
Еще один механизм, позволяющий чрезмерно использовать память, - это подкачка / разбиение на страницы на уровне ESX / ESXi, но это очень медленно, и вам следует избегать этого.
В ESXi 5, помимо этого, есть еще 2 механизма, позволяющих использовать избыточную память. Одним из них является дедупликация памяти, когда идентичные сегменты памяти выделяются только один раз. Существует поток vmkernel, который будет сканировать память во время простоя, чтобы найти такие сегменты.
Другой механизм - это сжатие памяти. Вместо подкачки сервер освободит место за счет сжатия некоторой памяти.
Чтобы узнать, используете ли вы, добавьте память, выделенную для всех виртуальных машин, включая консоль ESXi, добавьте около 100 МБ (это неточно) для vmkernel. Если это больше, чем физическая память, то вы чрезмерно загружаете память.
Вы также можете проверить размер балуна и своп, используемый для каждой виртуальной машины, в счетчиках производительности сервера ESXi.