Сколько оперативной памяти нужно для виртуальной машины
Независимо от того, используете ли вы виртуальную машину в службах удаленных рабочих столов или Виртуальном рабочем столе Azure, для разных типов рабочих нагрузок требуются разные конфигурации виртуальных машин узла сеансов. Масштабируйте развертывание в зависимости от потребностей пользователей, чтобы получить наилучшие результаты.
Рекомендуемые размеры виртуальных машин для стандартных или крупных сред
Мы рекомендуем ограничить размер виртуальной машины, используя от 4 до 24 виртуальных ЦП. Мы не рекомендуем использовать 2 ядра или 32 либо больше ядер для стандартных и крупных сред. Почему?
Число ядер в виртуальных машинах не должно превышать 32.
По мере увеличения числа ядер увеличивается и дополнительная нагрузка на систему, связанная с синхронизацией. Для большинства рабочих нагрузок при увеличении числа ядер свыше 16 начинает снижаться окупаемость инвестиций, при этом значительная часть дополнительной производительности нивелируется затратами на синхронизацию. Скорее всего, вы получите больше производительности от двух виртуальных машин с 16 ядрами, чем от одной с 32 ядрами.
При увеличении числа ядер рекомендуемый диапазон от 4 до 24 ядер обеспечит оптимальную производительность для пользователей. Например, предположим, что 12 пользователей одновременно входят в виртуальную машину с четырьмя ядрами. Отношение составляет три пользователя на ядро. В то же время, на виртуальной машине с восемью ядрами и 14 пользователями отношение составляет 1,75 пользователя на ядро. Сценарий с отношением 1,75 предлагает более высокую производительность для приложений с непродолжительной нагрузкой на ЦП.
В сценариях с 20 или более подключениями на одной виртуальной машине несколько небольших виртуальных машин будут работать лучше, чем одна или две крупные виртуальные машины. Например, если вы ожидаете, что 30 или более пользователей одновременно выполнят вход на один узел сеанса в течение 10 минут, две виртуальные машины с восемью ядрами справятся с нагрузкой лучше, чем одна 16-ядерная виртуальная машина. Вы также можете использовать балансировку нагрузки в ширину для равномерного распределения пользователей между разными виртуальными машинами.
Лучше использовать большое количество виртуальных машин меньшего размера, чем несколько крупных виртуальных машин. Так вам будет проще выключить виртуальные машины, которые нужно обновить или которые сейчас не используются. В случае с более крупными виртуальными машинами у вас всегда гарантированно будет хотя бы один выполнивший вход пользователь, что не позволит вам завершить работу виртуальной машины. Если же используется много небольших виртуальных машин, вероятнее, что некоторые из них будут полностью свободны. При этом вы сможете безопасно отключить неиспользуемые виртуальные машины, чтобы сэкономить ресурсы, сделав развертывание простым в обслуживании, более устойчивым и менее затратным.
Рекомендации для многосеансового режима
Примеры в этом разделе представляют собой общие рекомендации. Их следует использовать только для первоначальной оценки производительности. В следующей таблице указано максимальное число пользователей на виртуальный центральный процессор (виртуальный ЦП) и минимальная конфигурация виртуальной машины для каждой рабочей нагрузки. Эти рекомендации основаны на рабочих нагрузках Удаленного рабочего стола.
В следующей таблице приведен пример пилотного сценария с небольшой рабочей нагрузкой менее чем с 20 пользователями:
Тип рабочей нагрузки | Максимальное число пользователей на виртуальный ЦП | Минимальный объем хранилища виртуального ЦП, а также ОЗУ/ОС | Примеры экземпляров Azure | Минимальный объем хранилища контейнера профилей |
---|---|---|---|---|
Легкий | 4 | 4 виртуальных ЦП, 16 ГБ ОЗУ, 32 ГБ хранилища | D4s_v4, F4s_v2, D4as_v4 | 30 ГБ |
Средний | 2 | 4 виртуальных ЦП, 16 ГБ ОЗУ, 32 ГБ хранилища | D4s_v4, F4s_v2, D4as_v4 | 30 ГБ |
Тяжелый | 2 | 8 виртуальных ЦП, 32 ГБ ОЗУ, 64 ГБ хранилища | D8s_v4, F8s_v2, D8as_v4, D16s_v4, F16s_v2, D16as_v4 | 30 ГБ |
Мощный | 1 | 6 виртуальных ЦП, 56 ГБ ОЗУ, 340 ГБ хранилища | D4s_v4, F4s_v2, D4as_v4, NV12, NVv4 | 30 ГБ |
В этой таблице приведены примеры стандартных или крупных рабочих нагрузок с 20 или более пользователями:
Тип рабочей нагрузки | Максимальное число пользователей на виртуальный ЦП | Минимальный объем хранилища виртуального ЦП, а также ОЗУ/ОС | Примеры экземпляров Azure | Минимальный объем хранилища контейнера профилей |
---|---|---|---|---|
Легкий | 6 | 8 виртуальных ЦП, 16 ГБ ОЗУ, 16 ГБ хранилища | D8s_v4, F8s_v2, D8as_v4, D16s_v4, F16s_v2, D16as_v4 | 30 ГБ |
Средний | 4 | 8 виртуальных ЦП, 16 ГБ ОЗУ, 32 ГБ хранилища | D8s_v4, F8s_v2, D8as_v4, D16s_v4, F16s_v2, D16as_v4 | 30 ГБ |
Тяжелый | 2 | 8 виртуальных ЦП, 16 ГБ ОЗУ, 32 ГБ хранилища | D8s_v4, F8s_v2, D8as_v4, D16s_v4, F16s_v2, D16as_v4 | 30 ГБ |
Мощный | 1 | 6 виртуальных ЦП, 56 ГБ ОЗУ, 340 ГБ хранилища | D8s_v4, F8s_v2, D8as_v4, D16s_v4, F16s_v2, D16as_v4, NV12, NVv4 | 30 ГБ |
Тестирование рабочей нагрузки
Наконец, мы рекомендуем использовать инструменты моделирования для тестирования развертывания с помощью нагрузочных тестов и моделирования реальных ситуаций использования. Убедитесь, что система реагирует на запросы и достаточно устойчива для удовлетворения потребностей пользователей, и не забывайте менять размер нагрузки во избежание непредвиденных результатов.
Виртуальные машины, такие как Virtualbox, используются для эмуляции виртуальное оборудование и запуска нескольких операционных систем на компьютере. Чем лучше будет у вас CPU и чем больше будет оперативной памяти, тем быстрее будут выполнятся виртуальные машины на вашем компьютере.
Я предлагаю несколько советов которые помогут вам сэкономить время при начальной настройке виртуальных машин. Это будет полезно для работы с виртуальными машинами VirtualBox, VMware, Parallels, или любой другой.
Обязательно установите дополнения гостевой ОС VirtualBox или VMware Tools
После установки гостевой операционной системы в виртуальной машине, первое, что нужно сделать, это установить программное обеспечение виртуальной машины -«Дополнения гостевой ОС для VirtualBox» или VMware Tools для VMware". Эти пакеты включают в себя специальные драйверы, которые помогут вашей гостевой операционной системе работать быстрее на используя аппаратные средства вашей основной машины.
Установка пакета проста — в VirtualBox, после загрузки гостевой операционной системы, нажмите кнопку меню Устройства и выберите «Install Guest Additions». Если вы используете VMware, выберите «Install VMware Tools» в меню Virtual Machine. Следуйте инструкциям на экране для завершения установки — если вы используете Windows в качестве гостевой операционной системы, то это будет аналогично установке любого другого приложения.
Убедитесь, что вы имеете самую последнюю версию Guest Additions — если вы видите уведомление, что доступно обновление для Guest Additions или VMware Tools, вы должны установить его.
Создание фиксированного размера дисков при первоначальной настройке
При создании виртуальной машины, вы можете создать два различных типа виртуальных дисков. По умолчанию программа обычно предлагает использовать динамически выделяемые диски, которые растут, вместе с занимаемым местом гостевой ОС.
Например, если вы создаете новую виртуальную машину с динамически выделяемым диском с максимальным размером 30 Гб, это не займет до 30 Гб места на жестком диске сразу.После установки операционной системы и программ, диск может только занять до 10 Гб. По мере добавления файлов на виртуальном диске, он будет расширяться до максимального размера в 30 Гб.
Это может быть удобно — каждая виртуальная машина не будет занимать неоправданно много места на вашем жестком диске. Тем не менее, это медленнее, чем создание фиксированного размера диска (диск с заранее выделенным местом). При создании фиксированного размера диска, все 30 Гб, будет занято немедленно на вашем компьютере.
Здесь есть компромисс — фиксированный размер диска занимает больше места на жестком диске, но работает с виртуальным жестким диском быстрее. Вы также избавитесь от фрагментации файла — место будет занято большим блоком вместо того, чтобы добавлять по всему диску более мелкие куски.
Исключите каталог виртуальных машин в вашем антивирусе
Ваш антивирус может сканировать файлы виртуальной машины, когда к ним происходит обращение, снижая производительность. Антивирус не сможет определить вирус внутри виртуальной машины, работающий на вашей гостевой операционной системе, так что эта проверка только вредит.
Чтобы ускорить процесс, вы можете добавить свой виртуальный каталог машины в список исключений антивирусного автора. Как только он находится в списке, ваш антивирус будет игнорировать все файлы в этом каталоге.
Выделите больше памяти
Виртуальные машины любят много виртуальной памяти. Microsoft рекомендует 2 Гб RAM для 64-битной Windows 7, и эта рекомендация относится и к Windows 7 x32, когда он работает в виртуальной машине. Если вы работаете большими приложениями в виртуальной машине, вы можете выделить более 2 Гб оперативной памяти.
Вы можете выделить больше оперативной памяти в диалоге настроек вашей виртуальной машины (виртуальная машина должна быть выключена, чтобы сделать это). Если на Вашем компьютере не хватает памяти, чтобы комфортно работать вместе с виртуальной машиной, вы можете заметить очень большое снижение производительности компьютера при использовании файла подкачки на жестком диске.
Выделите больше процессоров
Если у Вас компьютер с несколькими процессорами или ядрами, вы можете выделить дополнительные процессоры для вашей виртуальной машины из окна настроек VM. VM с двухъядерным (или четырехъядерным) процессором будет более шустро реагировать.
Если вы собираетесь инсталлировать ОС семейства MS-Windows и в будущем чтобы можно было использовать больше ядер при инсталляции указывайте 2 ядра для того чтобы поставился корректный HAL, после инсталляции вы можете выключить машину и поставить 1 ядро по умолчанию для повседневного использования. Но для будущего вы всегда сможете добавить ядра без деинсталляции ОС. Linux VM может динамически определять любое количество ядер при загрузке ОС.
Настройте параметры видео
Тонкая настройка параметров видео и выделение большего объема видеопамяти поможет также улучшить скорость вашей виртуальной машины. Например, включение функции 2D ускорение в VirtualBox улучшает воспроизведение видео в виртуальных машинах, включение 3D-ускорения позволит вам использовать некоторые 3D-приложения.
По большому счету нужно минимизировать использование 3D например ОС Windows 7 — отключив Aero.
Убедитесь, что функции Intel VT-x или AMD-V включены
Intel VT-x и AMD-V являются специальными расширениями процессора, которые улучшают скорость виртуализации. Новые Intel и AMD процессоры обычно включают в себя эти функции. Тем не менее, некоторые компьютеры не включают автоматически VT-x или AMD-V — вам придется включить этот параметр в BIOS вашего компьютера.
Чтобы определить, поддерживает ли Ваш Intel процессор расширение Intel VT, воспользуйтесь утилитами показывающими системную информацию. Если ваш процессор поддерживает эту функцию, но опция недоступна в вашей виртуальной машине, вы должны в BIOS вашего компьютера включить эту функцию. Этот параметр обычно включен по умолчанию в материнских платах с процессорами AMD.
Поместите файлы виртуальной машины на другой диск
Производительность диска может ограничить скорость вашей виртуальной машины. Размещение файлов виртуальной машины на отдельном физическом диске или не на системном диске — может улучшить производительность. Ваша виртуальная машина и система не будут конкурентно читать и писать с одного диска.
Однако, вы не должны запускать виртуальную машину с внешнего диска (USB) — это будет гораздо медленнее.
Опираясь на описанную в предыдущем посте теорию, проведем расчеты:
Одновременно от 6 до 9 пользователей VDI могут использовать одно физическое ядро CPU. Для упрощения возьмем среднюю цифру — 7 пользователей.
Согласно требованиям заказчика необходимо обеспечить работу 700 пользователей по VDI с расширением до 1000.
Процессоры
Посчитаем количество необходимых процессоров.
Серверы заказчика на 6-ядерных процессорах Intel Xeon, 2 шт на сервер, т.е. 2 x 6 x 7 = 84 пользователя на 1 ESX-сервер с 2-мя процессорами. Кроме этого, архитектура Nehalem и Westmere очень эффективно позволяет задействовать Hyper Threading и получить на 50-80% больше клиентов. Т.е. на практике где-то: 1,52 * 84 = 126-128 пользователей.
Еслу Hyper Threading не может быть использован или дает прирост меньше 50%, или если необходимо сделать просчет с запасом, то рекомендуемое правило: использовать 75% пользователей на сервер от показателя с hyper threading (т.е. в нашем случае: 128 * 75% = 96 пользователей на сервер), но в текущем расчете все показатели были проверены на практике и совпали с расчетными.
Число серверов для первого этапа (700 пользователей) — 6 серверов, с учетом дальнейшего расширения — 8 серверов.
Оперативная память
Объем памяти напрямую зависит от используемой версии ОС Windows, и от того какие приложения будут запускаться. Требования по каждому приложению всегда можно посмотреть на сайте производителя ОС и программного обеспечения.
Например, с Windows XP (это наш случай) для базовых операций требуется 400-500 МБ, с кэшированием — не более 700 МБ. Система в обычных условиях начинает использовать файл подкачки, когда остается менее 25% свободного места в оперативной памяти. ОС всегда старается сохранить как минимум 25% свободного места в резерве. Но использование файлов подкачки в виртуальной среде приведет к потере производительности, поэтому вместо создания файла подкачки с объемом в 1,5-2 от оперативной памяти жестко зафиксируем: не более 200-500 МБ на файл подкачки, если это недостаточно, то клиенту необходимо добавить больше оперативной памяти.
Помимо этого, примерно половина всей используемой памяти содержит похожие блоки на всех клиентах (DLL, схожие блоки приложений и пр.). vSphere Memory Management делит всю память на страницы по 4 КБ, а служба TPS сканирует все блоки данных каждые 60 минут и вычисляет хэш. Ядро сохраняет хэш в таблицу и сравнивает с уже записанными ранее значениями, оставляя только одну копию из двух идентичных, высвобождая таким образом свободное пространство. Если необходимо внести изменения в эту страницу, то создается ее копия для записи. Процент RAM, который высвобождается c использованием TPS — относительный показатель, зависящий от многих факторов и может достигать 35%-50%. На Windows 7 этот показатель ниже из-за использования ASLR (Address Space Load Randomisation), но его также можно отключить.
Для запуска Windows XP на ESX-сервере нам необходимо:
- Если будет занято 60% памяти и половина ее будет разделяться между другими виртуальными машинами (Transparent Page Sharing), то нам нужно 1 ГБ * 60% * 50% = 300 МБ. Плюс, каждая виртуальная машина требует немного оперативной памяти сама по себе – около 5% от общего объема памяти сервера, те около 50 МБ на клиента. Итого 350 МБ. Хост сам по себе требует 4 ГБ RAM. Итого: 4 ГБ (хост) + 350 МБ * 128 (число виртуальных машин на сервер) = 48 ГБ RAM на сервер.
- Если занято 75% оперативной памяти и только треть будет разделяться, то каждому клиенту необходимо 1 ГБ * 75% * 67% = 512 МБ. Итого: 4 ГБ (хост) + (512МБ + 50 МБ) *128 = 75 ГБ RAM на сервер.
- Если хост вобще не поддерживает разделение страниц, то нам необходимо: 4 ГБ (хост) + (1024 МБ +50 МБ)* 128 = 139 ГБ RAM.
- Для клиентов Windows 7 цифры следующие: (2 ГБ + 102МБ) * 50% * 60% = 645МБ на клиент. Итого: 4ГБ + 660МБ *128 = 81 ГБ. Если хост не поддерживает transparent page sharing, то необходимо: 4ГБ + (2ГБ + 102МБ) * 128 = 275 ГБ.
Диски
Показатель IOPS очень сильно зависит от версии ОС и от тех приложений, которые будут использоваться. Для ОС Windows XP примерный показатель — 8 IOPS на саму систему, для Windows 7 — 10 IOPS на систему. Исходя из этого, на 128 виртуальных машин Windows XP (8 IOPS) необходимо 1024 IOPS в режиме чтение/запись 20/80, т.е. 205 IOPS на чтение и 819 IOPS на запись. Т.е получаем количество дисков в RAID1: 205 / 160 IOPS + 819 / 80 IOPS (см. предыдущий пост, часть по RAID) = 14 дисков, неважно стоят ли они на хосте или на общем хранилище.
В RAID5: 205 / 160 + 819 / 45 = 21 диск.
Исходя из замеров на дисковую подсистему: на каждого обычного пользователя необходимо 20 IOPS дисковой производительности, таким образом: 20 IOPS * 1000 пользователей = 20000 IOPS. Из них 20% на чтение (4000 IOPS) и 80% на запись (16000 IOPS). Рассчитаем число дисков в RAID1: 4000 / 160 + 16000 / 80 = 226 дисков. Если пользователи отличаются по приложениям, то расчет берется по каждой группе пользователей.
Если необходимо посчитать число дисков в RAID5: 4000 / 160 + 16000 / 45 = 381 диск.
В требованиях нашего заказчика были указаны обычные пользователи (email, интернет, таблицы, текстовые документы).
Так как текущее хранилище (HP EVA) могло быть расширено до требуемых 226 дисков, то необходимости в замене хранилища не было.
Для получения показателей производительности VDI профилей в рамках массива используется команда vscsiStats. C помощью нее подсчитываются: IO size, seek distance, Outstanding IOs, Latency.
У vmWare есть документ, в котором указаны показатели и команды для запуска статистики.
После подсчетов в теории необходимо проверить этой командой правильно ли отрабатывает тестовая конфигурация, и если необходимо — внести корректировки в конфигурацию.
Прежде, чем строить инфраструктуру на базе виртуализации, и, тем более – вводить ее в промышленную эксплуатацию, необходимо позаботиться о том, чтобы ресурсы системы использовались наиболее эффективно, и производительность была максимальной. В этом цикле статей я дам рекомендации о том, как оптимизировать систему по производительности – как со стороны хоста, так и со стороны виртуальных машин.
Начнем с хоста
- Процессор
- Память
- Дисковая подсистема
- Сетевая подсистема
Процессор – сердце компьютера
- Сколько ставить процессоров?
- Сколько нужно ядер?
- Их скоростные характеристики?
- Требуется больше лицензий на ПО – как на сами ОС, так и на ПО управления (SCVMM, SCCM, SCOM, etc.)
- Возрастают затраты на администрирование – три сервера вместо одного
- Три сервера потребляют больше энергии, а значит – выделяют больше тепла, и занимают больше места в стойке, чем один сервер, пусть и более мощный.
- Hyper-V Hypervisor Virtual Processor, % Total Run Time — этот счетчик отображает загрузку виртуальных процессоров. Можно задать отображение суммарной загрузки всех процессоров для запущенных виртуальных машин, а можно выбрать конкретный виртуальный процессор конкретной виртуальной машины.
- Hyper-V Hypervisor Root Virtual Processor, % Total Run Time – а этот счетчик показывает загрузку выбранных логических процессоров задачами, не связанными с Hyper-V.
Памяти много не бывает
- Сколько виртуальных машин будет запущено, и сколько памяти им понадобится? Объем памяти, необходимый каждой виртуальной машине зависит от задач, которые она будет выполнять. Подход тот же самый, что и для обычных серверов, но память виртуальным машинам можно выделять более гибко – не 1024 Мб, а, к примеру, 900 Мб.
- Хостовой ОС тоже нужна память. Рекомендуется оставлять как минимум 512 Мб свободной памяти на нужды гипервизора и самой хостовой ОС. Если объем свободной памяти опустится ниже 32 Мб – система не даст запустить больше ни одной виртуальной машины, пока память не освободится. Кроме этого, в хостовой ОС могут выполняться какие-то другие задачи, помимо виртуализации. Хотя это и крайне не рекомендуется, но факт все же имеет место быть, и это необходимо учитывать.
- Другие виртуальные машины (для сценариев Live Migration). Если инфраструктура планируется на базе отказоустойчивого кластера, то необходимо на каждом из хостов предусмотреть дополнительные объемы памяти. Дело в том, что виртуальные машины могут перемещаться с одного хоста на другой в случае ручного перемещения (Live Migration), или же в случае отказа одного из хостов. Если на хосте будет недостаточно памяти для запуска перемещаемых виртуальных машин – то они попросту не смогут на нем запуститься. Поэтому на этапе проектирования надо предусмотреть «неприкосновенный запас» в размере 50-100% от необходимого объема памяти. Возможно, ситуация немного улучшится с выходом Windows Server 2008 R2 SP1, в который входят технологии динамического распределения памяти, но точно я смогу сказать лишь тогда, когда сам это протестирую.
Жесткие диски: сколько их надо?
- RAID 0 – «массив с чередованием». Информация пишется блоками («страйпами») одновременно на несколько дисков. Благодаря этому чтение и запись больших объемов информации происходит значительно быстрее, чем с одного диска, и тем быстрее, чем больше дисков в массиве. Но есть один большой недостаток: низкая надежность. Выход из строя любого из дисков приведет к полной потере информации. Поэтому на практике RAID 0 используется достаточно редко. Один из примеров – промежуточное хранилище резервных копий в модели «Disk-to-disk-to-tape», когда надежность не так важна, как быстродействие.
- RAID 1 – «зеркалирование». При такой модели информация записывается одновременно на несколько дисков, причем содержимое всех дисков абсолютно идентично. Скорость записи и чтения не выше, чем для одиночного диска, но намного выше надежность: выход из строя одного диска не приведет к потере информации. Недостаток лишь один: высокая стоимость – там, где хватает и одного диска – приходится ставить два и более. Смысл имеет в тех случаях, когда надежность имеет решающее значение.
- RAID 4 и RAID 5 – «чередование с контролем четности». Предстваляет собой некую «золотую середину» между RAID 0 и RAID 1. Смысл состоит в том, что информация хранится на дисках как и в случае RAID 0 — блоками с чередованием, но помимо этого вычисляются контрольные суммы хранимых данных. В случае отказа одного из дисков – недостающие данные автоматически вычисляются по имеющимся данным и контрольным суммам. Разумеется, это приводит к снижению производительности, но в то же время данные не теряются, и при замене сбойного диска вся информация восстанавливается (этот процесс называется перестройкой массива). Потеря данных произойдет только при отказе двух и более дисков. Такие массивы отличаются тем, что скорость записи у них значительно ниже, чем скорость чтения. Происходит так из-за того, что при записи блока данных происходит вычисление контрольной суммы и запись ее на диск. RAID 4 и RAID 5 отличаются тем, что в RAID 4 контрольные суммы записываются на отдельный диск, а в RAID 5 – хранятся на всех дисках массива вместе с данными. В любом случае, для организации такого массива нужно N дисков для хранения данных плюс один диск. В отличие от RAID 1 и RAID 10, где количество дисков просто удваивается.
- RAID 6 – он же RAID DP, double-parity, двойная четность. То же самое, что и RAID 5, но контрольные суммы вычисляются два раза, с использованием различных алгоритмов. Хотя дисков здесь требуется уже не N+1, как с RAID 5, а N+2, зато такой массив может пережить даже одновременный отказ двух дисков. Встречается относительно редко, как правило – в системах хранения данных Enterprise-уровня, к примеру – NetApp.
- RAID 10 – «гибрид» RAID 0 и RAID 1. Представляет собой RAID 0 из нескольких RAID 1 (и тогда называется RAID 0+1) или наоборот – RAID 1 из нескольких RAID 0 (RAID 1+0). Отличается наивысшей производительностью, как по записи, так и по чтению, но в то же время отличается и высокой стоимостью – так как дисков требуется в 2 раза больше, чем необходимо для хранения данных.
- Physical Disk, % Disk Read Time
- Physical Disk, % Disk Write Time
- Physical Disk, % Idle Time
- Physical Disk, Avg. Disk Read Queue Length
- Physical Disk, Avg. Disk Write Queue Length
Сетевая подсистема
- Сколько виртуальных машин будет запущено одновременно, и какова будет нагрузка на сеть?
- Какова пропускная способность сети?
- Используются ли системы хранения данных с интерфейсом iSCSI?
- Есть ли у сервера аппаратные средства удаленного управления, не зависимые от установленной ОС (к примеру – HP iLO или Dell DRAC)?
На уровне хоста
Для серверов, у которых нет аппаратных средств удаленного управления рекомендуется один из сетевых интерфейсов оставлять незадействованным в виртуальных сетях, исключительно для задач управления. Это сильно снизит риск ситуации, когда при чрезмерной утилизации или же из-за неправильных настроек сетевого интерфейса пропадает возможность удаленного управления сервером. Сделать это можно либо на этапе инсталляции роли Hyper-V, сняв галочку с одного из сетевых интерфейсов, либо же после инсталляции – удалив виртуальную сеть, привязанную к сетевому интерфейсу, который будет использоваться для управления.
Кроме этого, на уровне хоста прямо таки необходимо установить как можно более «свежие» драйверы для сетевых адаптеров. Это нужно для того, чтобы воспользоваться специальными функциями сетевых адаптеров – VLAN, Teaming, TCP Offloading, VMQ (при условии, что сами сетевые адаптеры это поддерживают – как правило, это специализированные серверные сетевые адаптеры).
Сетевые нагрузки
iSCSI
Если планируется использовать системы хранения данных с интерфейсом iSCSI – крайне рекомендуется выделить для работы iSCSI отдельный сетевой интерфейс, а то и два – для работы MPIO. Если LUN’ы будут монтироваться в хостовой ОС – то нужно просто оставить один или два интерфейса не привязанными к виртуальным сетям. Если же iSCSI-инициаторы будут работать внутри виртуальных машин – для них нужно создать одну или две отдельных виртуальных сети, которые будут использоваться исключительно для трафика iSCSI.
VLAN-тегирование
VLAN-тегирование (IEEE 802.1q) означает «маркировку» сетевых пакетов специальным маркером (тегом), благодаря которому пакет может быть ассоциирован с определенной виртуальной сетью (VLAN). При этом хосты, принадлежащие к разным VLAN, будут находиться в разных широковещательных доменах, хотя и подключаться физически к одному и тому же оборудованию. Виртуальные сетевые адаптеры в Hyper-V так же поддерживают тегирование VLAN. Для этого нужно зайти в свойства виртуального адаптера в настройках виртуальной машины и прописать там соответствующий VLAN ID.
Активное оборудование
Рекомендации для хостовой ОС
- Меньший объем обновлений
- Меньшая поверхность атаки для потенциальных злоумышленников
- Меньшая нагрузка на процессор и память в родительской партиции
Запуск других приложений в хостовой ОС
Запуск в гостевой ОС сторонних (не имеющих отношения к Hyper-V) приложений, а так же установка других серверных ролей помимо Hyper-V может привести к сильному падению производительности, а так же к снижению стабильности. Дело в том, что из-за особенностей архитектуры Hyper-V, все взаимодействие виртуальных машин с устройствами проходит через родительскую партицию. Поэтому высокие нагрузки или «падение в синий экран» в родительской партиции обязательно приведут к падению производительности или просто к «падению» всех запущенных виртуальных машин. Сюда же можно (и нужно) отнести антивирусное ПО. Нужно ли оно вообще на хосте, который не будет заниматься ничем, кроме, собственно, виртуализации – это, конечно, тот еще вопрос. Тем не менее, если антивирус все же установлен – первое, что необходимо сделать – исключить из списка проверки все папки, где могут находиться файлы виртуальных машин. В противном случае, при сканировании может замедлиться производительность, а если в каком-нибудь VHD-файле обнаружится что-то похожее на вирус – то при попытке лечения антивирусный пакет может испортить сам VHD. Подобные случаи наблюдались и с базами MS Exchange, и потому первая рекомендация – не ставить вообще на серверах Exchange файловые антивирусы, а если и ставить – то добавить папки с базами в исключения.
Рекомендации для виртуальных машин
Шаги, которые необходимы предпринять для повышения производительности самих виртуальных машин – зависят от приложений, которые будут на них выполняться. У Microsoft имеются рекомендации (best practices) для каждого из приложений – Exchange, SQL Server, IIS, и других. Аналогичные рекомендации существуют для ПО других вендоров. Здесь я дам лишь общие рекомендации, не зависящие от конкретного ПО.
Здесь будет рассказано, почему нужно устанавливать Integration Services в гостевой ОС, как упростить развертывание новых виртуальных машин с помощью библиотеки VHD, и как поддерживать эти VHD в актуальном состоянии с выпуском новых патчей.
Сервисы интеграции
- Windows 2000 Server SP4
- Windows Server 2003 SP2
- Windows Server 2008
- Windows XP SP2, SP3
- Windows Vista SP1
- SUSE Linux Enterprise Server 10 SP3 / 11
- Red Hat Enterprise Linux 5.2 – 5.5
- IDE-контроллер – заменяет собой эмулируемый IDE-контроллер, что повышает скорость доступа к дискам
- SCSI-контроллер – является полностью синтетическим устройством и требует для работы обязательной установки интеграционных сервисов. К каждому SCSI-контроллеру можно подключить до 64 дисков, самих контроллеров может быть до 4 на каждую виртуальную машину.
- Сетевой адаптер – имеет более высокую производительность, чем эмулируемый (Legacy Network Adapter), и поддерживает особые функции, такие, как VMQ.
- Видео и мышь – повышают удобство управления виртуальной машиной через ее консоль.
- Operating System Shutdown – возможность корректного завершения работы гостевой ОС без логина в нее. Аналогично нажатию кнопки Power на корпусе ATX.
- Time Synchronization – ясно из названия – синхронизация системного времени между хостовой и гостевой ОС.
- Data Exchange – обмен ключами реестра между гостевой и хостовой ОС. Таким образом, к примеру, гостевая ОС может определить имя хоста, на котором она запущена. Эта возможность доступна только для гостевых ОС семейства MS Windows.
- Heartbeat – специальный сервис, периодически отправляющий специальные сигналы, означающие, что с виртуальной машиной все в порядке. Если гостевая ОС по какой-то причине, например, зависнет – она перестанет отправлять Heartbeat, и это может служить сигналом, к примеру, для автоматической перезагрузки.
- Online Backup – представляет из себя VSS Writer, позволяющий в любой момент получить консистентную резервную копию данных виртуальной машины. При запуске резервного копирования через VSS приложения, запущенные на виртуальной машине автоматически сбрасывают данные на диск, и потому бэкап получается консистентным.
Sysprep: создаем мастер-образ
- Создать новую виртуальную машину
- Произвести установку ОС, сервисов интеграции, всех доступных обновлений системы и дополнительного ПО, если таковое необходимо
- Подготовить установленную ОС с помощью утилиты Sysprep, которая удалит информацию о пользователе, ключе продукта и уникальный идентификатор (SID).
Оффлайн-установка обновлений
- Виртуальная машина разворачивается на специальном, выбираемом с помощью SCVMM, хосте – так называемый maintenance host.
- Виртуальная машина запускается, и на ней производится установка всех необходимых обновлений.
- Виртуальная машина останавливается, и VHD-файл возвращается в библиотеку уже с установленными обновлениями.
Заключение
Я дал некоторые рекомендации по настройке хостов и самих виртуальных машин, позволяющей достичь оптимального уровня производительности. Буду надеяться, что для кого-то эта информация окажется полезной.
Кроме того, когда я выделяю ОЗУ для виртуальной машины, эта память теперь зарезервирована исключительно для виртуальной машины и, если да, резервируется ли она только для виртуальной машины, когда виртуальная машина выполняет гостевую ОС, или она создает постоянное разделение в ОЗУ, то есть, когда я перестану работать и выйду из виртуальной машины, моя операционная система (Windows 7) восстановит все 6 ГБ ОЗУ в качестве доступной ОЗУ?
Вы должны предоставить виртуальной машине столько оперативной памяти, сколько необходимо для задач, которые вы используете для ее выполнения .
Если вы работаете с одной виртуальной машиной, вы можете прочитать предложение «ОК» (при условии, что на вашей хост-машине достаточно ОЗУ, что и происходит). Однако, в зависимости от того, что вы планируете делать с вашей системой Ubuntu, ей, вероятно, не потребуется 2,7 ГБ ОЗУ. Я отдаю большинству своих виртуальных машин, включая виртуальные машины Ubuntu, 1 ГБ ОЗУ, даже когда у меня достаточно физической памяти, чтобы я мог выделить больше.
Если вы планируете запускать несколько виртуальных машин, то выделение виртуальной машине 2,7 ГБ ОЗУ из общего количества 6 ГБ, вероятно, будет слишком много. Было бы плохо иметь две виртуальные машины с таким количеством оперативной памяти!
Наконец, ваша виртуальная машина обычно резервирует всю оперативную память, которую вы ей предоставляете, всякий раз , когда она работает . Когда виртуальная машина выключена, приостановлена, находится в спящем режиме или иным образом не работает, эта оперативная память не будет использоваться . Например, у меня есть около 10 виртуальных машин, большинство из которых имеют 1 ГБ ОЗУ, на хост-машине с 4 ГБ ОЗУ. Это не проблема; это просто означает, что я могу запустить только несколько из них одновременно.
Не существует фиксированного правила относительно объема ОЗУ, которое мы назначаем для эксклюзивного использования виртуальной машиной. Однако есть два момента, о которых нам нужно позаботиться:
- выделите достаточно оперативной памяти для гладкой работы гостевой ОС ( > 512 МБ для 64-битной Ubuntu )
- оставить достаточно оперативной памяти для хост-ОС, включая хост-приложения ( > 2 ГБ для 64-битной Windows 7 )
Virtual Box Manager будет предупреждать вас всякий раз, когда вы назначаете более 50% ОЗУ виртуальной машине, но в случае, если у нас достаточно ОЗУ, это только практическое правило. Конечно, мы можем выделить более 50% системной оперативной памяти нашей виртуальной машине, если у нас достаточно оперативной памяти для нашей хост-ОС.
Обратите внимание, что нам не нужно слишком беспокоиться об объеме ОЗУ, который мы назначаем для вновь созданной машины, поскольку мы можем легко изменить это в любое время позже .
Общие рекомендации по использованию виртуальных машин
Для производственных рабочих нагрузок, для которых требуется соглашение об уровне обслуживания (SLA) рекомендуется использовать хранилище SSD (цен. категория "Премиум") на диске ОС. Дополнительные сведения см. в разделе Соглашение об уровне обслуживания для Виртуальных машин.
Графические процессоры хорошо подходят пользователям, которые регулярно используют ресурсоемкие графические программы для отрисовки видео, трехмерного проектирования и моделирования. Чтобы узнать больше об ускорении обработки графики, ознакомьтесь с разделом Выбор технологии отрисовки графики. В Azure есть несколько вариантов развертывания средств ускорения обработки графики и доступно несколько размеров виртуальных машин с поддержкой GPU. Узнайте больше об этих размерах виртуальных машин, оптимизированных для GPU.
B-series burstable VMs (Виртуальные машины с разбивкой серии B) являются хорошим выбором для пользователей, которым не всегда требуется максимальная производительность ЦП. Дополнительные сведения о типах и размерах ВМ см. в Sizes for Windows virtual machines in Azure (Размеры для виртуальных машин Windows в Azure) и раздел сведений о ценах на странице Серия виртуальных машин.
Рекомендации для односеансового режима
Ввиду рекомендаций по определению размеров виртуальных машин для односеансовых сценариев, мы рекомендуем как минимум два физических ядра ЦП на каждую виртуальную машину (обычно четыре виртуальных ЦП с технологией Hyper-Threading). Если вам нужны более конкретные рекомендации по выбору размера виртуальных машин для односеансовых сценариев, обратитесь к поставщикам программного обеспечения, относящимся к вашей рабочей нагрузке. Размеры виртуальных машин для односеансовых виртуальных машин, скорее всего, будут соответствовать руководствам к физическим устройствам.
На всех виртуальных машинах должно быть больше двух ядер
Для ОС Windows 10 и ее компонентов пользовательского интерфейса предполагается использование не менее двух параллельных потоков для выполнения некоторых ресурсоемких операций визуализации. Наличие нескольких пользователей на двухъядерной виртуальной машине приведет к нестабильной работе пользовательского интерфейса и приложений, что снижает качество взаимодействия с пользователем. Четыре ядра — это минимальное возможное число ядер, которое может иметь стабильно работающая виртуальная машина с несколькими пользователями.
Читайте также: