Что такое виртуальная машина и зачем она нужна? Установка пакета инструментов виртуальной машины. Интерактивная работа в трехмерных пакетах

Мы немного познакомились с технологией виртуализации процессоров, научились включать эту функцию. Сегодня мы продолжим тему, будем устанавливать виртуальные операционные системы на компьютер, настраивать ресурсы, и запускать.

В выпуске представлен краткий обзор двух самых ходовых оболочек, предназначенных для создания и использования виртуальных машин. Программы эти еще называются гипервизорами.

Виртуальные машины можно легко и самостоятельно устанавливать на обычных домашних компьютерах, но их так же широко используют и на серверах.

Создаются виртуальные серверы с виртуальными удаленными рабочими столами для решения различных задач на одном физическом компьютере.

Что такое виртуальная машина на ПК и ее назначение

Для личного пользования вполне годится, если вы решили самостоятельно освоить новую операционную систему. Теперь вам не нужно иметь дополнительного компьютера. Не нужно удалять привычную Windows. Можно учиться одновременно просматривая почту и соц сети и в тоже время получать навыки по установке, настройке новых, полезных и интересных программ. Разработчики так проверяют работу приложений в новых и старых средах, тестируют работу как и операционных систем, так и программ и оборудования.

Но главное назначение пожалуй не в этом, а в очевидной экономии. Ведь не зря эту технологию давно развивают. Для работы серверов в первую очередь нужно производительное оборудование, которое дорого. Обычный сервер использует свои ресурсы где-то на 40-60%. А если таких серверов два или больше, то получается что половина мощностей простаивает.

Чтобы избавиться от кластеризации, не внедрять кучу физический серверов и предназначены виртуальные машины. На одном компьютере можно установить к примеру, почтовый сервер, DNS-сервер, контроллер домена и прокси- сервер. При правильном расчете и настройке у вас будет четыре сервера, которые крутятся на одном физическом. Физический компьютер будет работать на оптимальной мощности.

Как настроить виртуальную машину Hyper -V для Windows?

Программа — гипервизор предназначена для установки, настройки, запуска и управления виртуальных машин. В Windows 10 разработчики сделали свою, встроенную и ничего таким образом не надо покупать. По умолчанию эта оснастка в операционной системе не видна и нам ее надо установить как дополнительный компонент. Для этого в «Панели управления» находим ссылку «Программы», а в нем «Установка дополнительных компонентов Windows»

Флажками отмечаем нужные компоненты:

Начнется установка гипервизора, и применение изменений. Система попросит перезагрузку.

При перезагрузке не забудьте проверить — включена ли виртуализация процессора в BIOS!

Что нам нужно еще для запуска виртуальной операционной системы? Нам достаточно найти ее образ iso и скачать его на компьютер. У меня есть дистрибутив от Linux Fedora для любителей астрономии в виде Iso. Интересно, что это за операционная система? Давайте для начала найдем наш Гипервизор. Для этого жмем на меню «Пуск» спускаемся вниз и находим «Средства администрирования».

Можно вывести ярлыки на рабочий стол для удобства. Диспетчер предназначен для управления виртуальными машинами. А «быстрое создание» говорит само за себя. Жмем на этот ярлык. По умолчанию система предлагает создать виртуальную машину Windows 10 или Linux -Ubuntu. Но мы сегодня будем искать другой образ, нажимаем «Сменить источник установки»:

Не забываем в «дополнительных параметрах» указать сетевой адаптер и имя виртуально машины.

В «Проводнике» ищем наш нужный образ операционной системы:

После чего нажимаем большую синюю кнопку:

Виртуальная машина Hyper -V создается с параметрами по умолчанию, обычно это минимальные системные требования для запуска. Система сама отбирает количество ядер процессора, выделяет оптимальный объем оперативной памяти, создает ВИРТУАЛЬНЫЙ жесткий диск исходя из имеющихся пространства в наличии. Место расположения виртуальной машины так же автоматически выбирается на диске. Но Вы можете изменять все настройки под себя. Перед подключением зайдите:

Все параметры поддаются изменению; внимательно читаем, что и для чего предназначено:

После можно подключиться.

Как и любая операционная система, виртуальная так же требует установки. Все так же как и в реале:)

Типичная Linux- установка:

После загрузки графической оболочки KDE, продолжим устанавливать дистрибутив на ВИРТУАЛЬНЫЙ жесткий диск, выбрав соответствующий ярлык:

Управление виртуальной машиной Hyper-V осущесвляется путем нажатия кнопок в верхней части панели:

Кнопки позволяют запускать, приостанавливать, завершать работу, создавать контрольную точку, а так же экспортировать виртуальную машину. Все как в настоящем компьютере:). Hyper-V будет хороша на серверных редакциях Windows. Правда там нужно уметь много чего настраивать. И этот гипервизор у меня пару раз слетал после крупных кумулятивных обновлений «десятки». Его приходилось ставить заново.

Обзор виртуальной машины VM Workstation, как настроить и установить

Другим популярным решением является VM Ware Workstation . Это очень гибкое программное решение, с ним у меня не было проблем. Оно не бесплатно. Но оно легкое, и работает без сбоев, его просто было настраивать. Скачиваем и настраиваем программу. На последних редакциях Windows 10 гипервизор не запустится, программа выдаст ошибку. Если при первом запуске виртуальной машины у вас появиться ошибка vmware player and device/credential guard are not compatible, сначала .

Соглашаемся с указаниями мастера; после установки перезагружаем компьютер. Запускной файл находим через меню «Пуск» и клацаем по нему:

Открываем программу, создаем новую виртуальную машину.

Выбираем обычный тип установки:

Далее, мастер как и положено предложит установить операционную систему. Сделать это он предлагает либо с CD/DVD диска либо с файла ISO. У меня файл лежит на диске, его я и буду использовать. В этом примере я ставлю Windows XP .

При использовании «быстрой установки» такие параметры как имя компьютера, раскладка клавиатуры, ключ продукта, имя пользователя, учетная запись, будут установлены по умолчанию. Это не всегда удобно, и эти данные исправляются после установки, либо в момент создания образа операционной системы. Но в последнем случае придется пройти вручную по всем этапам — как на физическом компьютере.

Не забываем в следующем окне указать имя виртуальной машины и ее расположение.

Вот мы и дошли до ключевых настроек. Нужно указать размер ВИРТУАЛЬНОГО жесткого диска:

Почти готово. Для большинства операционных систем гипервизор подбирает оптимальные размеры и памяти и жесткого диска, но их можно потом менять:

Запускаем виртуальную машину, после этого начнется установка операционной системы. Обращаем внимание, что подключенные к физическому компьютеру периферийные устройства можно будет использовать и на виртуальной машине. Некоторые из них (флешки, внешние жесткие диски) надо будет подключать вручную через меню «Виртуальная машина» — «Подключаемое оборудование»

Управление виртуальными машинами осуществляется понятно и просто. Так же есть панель управления, которая расположена в верхней части окна:


Виртуальная машина Windows XP на Windows 10, видео

Давайте посмотрим пример создания виртуальной машины в коротком ролике:

Ничего сложного! Удачи!

Консоль диспетчера Hyper-V позволяет выполнять различные действия по управлению виртуальными машинами. В данном разделе кратко описаны три действия:

  • Экспорт и импорт виртуальных машин
  • Работа с моментальными снимками
  • Работа с динамической миграцией (новая функция Hyper-V R2)

Экспорт и импорт виртуальных машин

Консоль диспетчера Hyper-V позволяет экспортировать виртуальную машину с одного сервера Hyper-V для последующего импорта на другой сервер Hyper-V. Эта функциональность позволяет выполнять миграцию виртуальной машины с одного главного компьютера на другой с помощью технологии динамической миграции.

Процесс экспорта виртуальной машины с одного сервера Hyper-V и импорта на другой сервер выполняется в два этапа:

  1. Экспорт виртуальной машины с первого сервера Hyper-V в виде коллекции экспортированных файлов и папок
  2. Импорт экспортированных файлов и папок в целевой сервер Hyper-V.

Ниже кратко описаны действия по экспорту виртуальной машины.

  1. Вначале завершите работу виртуальной машины, которую требуется переместить. Чтобы завершить работу виртуальной машины, выберите виртуальную машину в консоли диспетчера Hyper-V, а затем щелкните команду «Завершить работу» на панели «Действия».
  2. Определите расположение, в которое будет экспортирована виртуальная машина. Расположение экспорта может иметь следующие значения:
    • Временная папка на внешнем жестком диске для переноса файлов экспортированной виртуальной машины с первого сервера Hyper-V на целевой сервер.
    • Общая папка на сетевом файловом сервере для временного хранения файлов экспортированной виртуальной машины до перемещения на целевой сервер.
    • Общая папка на целевом сервере, которая представляет собой итоговое расположение миграции виртуальной машины.
  3. Выберите экспортируемую виртуальную машину и щелкните команду «Экспорт» на панели «Действия». В открывшемся окне «Экспорт виртуальной машины» введите путь к расположению экспорта или выберите его. Если целевая папка является общей сетевой папкой, укажите для нее путь UNC.
  4. Нажмите кнопку «Экспорт» для запуска экспорта.

После завершения экспорта в расположении будут представлены следующие файлы и папки:

  • Confix.xml XML-файл, содержащий сведения о исходных расположениях всех виртуальных жестких дисков, настроенных для экспортированной виртуальной машины.
  • Virtual Machines Папка, содержащая файл экспорта с именем .exp. Этот файл содержит сведения об экспортированной виртуальной машине и преобразуется в XML-файл конфигурации в ходе импорта.
  • Virtual Hard Disks Папка, содержащая виртуальные жесткие диски (VHD-файлы) для экспортированной виртуальной машины.
  • Snapshots Папка, содержащая сведения о моментальных снимках виртуальной машины, в т. ч. файлы разностных дисков моментальных снимков (AVHD-файлы) и файлы сведений о состоянии этих снимков (файлы VSV и BIN).

После экспорта виртуальной машины и копирования файлов и папок в целевое расположение на сервере можно импортировать их и таким образом воссоздать виртуальную машину на целевом сервере.

При выполнении импорта необходимо понимать следующие аспекты. Во-первых, импорт возможен только для виртуальных машин, экспортированных с другого сервера Hyper-V. Импорт виртуальных машин из Virtual Server 2005 или Virtual PC невозможен. Все три продукта виртуализации серверов (Hyper-V, Virtual Server и Virtual PC) используют один формат файлов виртуального жесткого диска VHD, но сведения о конфигурации виртуальных машин хранятся по-разному. Кроме того, они также имеют другие несовместимые функции.

Во-вторых, процесс импорта экспортированной виртуальной машины можно выполнить только один раз. Это связано с тем, что в ходе импорта EXP-файлы экспорта преобразуются в XML-файлы конфигурации. Кроме того, если процесс импорта завершается с ошибкой или выполняется некорректно (например, если экспортированные файлы импортируются в неверное расположение), то единственным способом восстановления будет удаление виртуальной машины, перемещение VHD-файлов в верное расположение и повторное создание виртуальной машины с использованием тех же параметров.

Ниже кратко описаны действия по импорту экспортированных файлов и папок виртуальной машины.

  1. Убедитесь в том, что экспортированные файлы и папки находятся в корректных расположениях на целевом сервере.
  2. Подключитесь к целевому серверу в консоли диспетчера Hyper-V, а затем щелкните команду «Импорт виртуальной машины» на панели «Действия».
  3. В открывшемся окне «Импорт виртуальной машины» введите путь к расположению экспортированных файлов и папок или выберите его.
  4. Нажмите кнопку «Импорт» для запуска импорта.

После импорта виртуальной машины попытайтесь запустить ее и убедитесь в том, что она работает корректно.

Работа с моментальными снимками

Моментальный снимок является отображением состояния и параметров виртуальной машины на определенный момент времени. Hyper-V позволяет записывать моментальные снимки виртуальных машин и возвращать машины в предыдущее состояние. Например, можно установить гостевую ОС на виртуальной машине, создать моментальный снимок, выполнить изменения конфигурации системы, а затем вернуть систему к моментальному снимку и отменить все изменения.

Моментальные снимки можно делать при запущенной, сохраненной или завершенной виртуальной машине. Создание снимков приостановленной виртуальной машины невозможно. Пользователь может сделать несколько моментальных снимков виртуальной машины для создания дерева снимков - последовательности снимков, сделанных в различное время. Управление этим деревом осуществляется путем удаления отдельных снимков или всего подчиненного дерева. Чтобы вернуться к одному из снимков дерева, примените его к виртуальной машине.

Моментальные снимки особенно полезны при тестировании и разработке продукта. Например, можно установить разрабатываемое приложение на виртуальную машину, создать моментальный снимок и начать работу с приложением. Если оно аварийно завершит работу, можно вернуться к снимку и попытаться воспроизвести действия, приведшие к аварийному завершению, что позволяет устранить причину ошибки.

Примечание Моментальные снимки обычно не используются в рабочем режиме, так как они не заменяют собой соответствующие процессы резервного копирования и восстановления. Например, несмотря на то, что запуск контроллеров домена на виртуальных машинах поддерживается Hyper-V, создание снимков контроллеров и их последующее применение может вызвать проблемы репликации и поэтому не рекомендуется в рабочей среде.

Консоль диспетчера Hyper-V позволяет создавать моментальные снимки виртуальных машин. Для этого выберите виртуальную машину на панели «Виртуальные машины» и щелкните элемент «Моментальный снимок» на панели «Действия». Как показано на рисунке 2-17, после создания нового снимка его значок отображается на панели «Моментальные снимки» в центре консоли. Имя нового моментального снимка содержит имя виртуальной машины, для которой он сделан, а также дату и время снимка.

Рисунок 2-17 . Моментальные снимки виртуальной машины.

Как показано на рисунке 2-17, при создании снимка виртуальной машины на панели «Моментальные снимки» отображается зеленая стрелка с надписью «Сейчас». Эта стрелка указывает на текущую конфигурацию виртуальной машины.

Для создания снимков виртуальной машины также можно использовать средство подключения к виртуальной машине. Это можно сделать двумя способами:

  • Выберите команду «Моментальный снимок» из меню «Действие».
  • Щелкните значок «Моментальный снимок» на панели инструментов.

При создании моментального снимка с помощью средства подключения к виртуальной машине отображается диалоговое окно «Имя моментального снимка» с запросом на ввод понятного имени нового снимка.

Все файлы моментальных снимков по умолчанию сохраняются в следующей папке сервера Hyper-V.

%SystemRoot%\ProgramData\Microsoft\Windows\HyperV\Snapshots

Это расположение можно изменить отдельно для каждой виртуальной машины путем настройки ее параметров.

При создании моментального снимка машины будут созданы файлы следующих типов:

  • XML-файл конфигурации виртуальной машины
  • VSV-файлы сохраненного состояния виртуальной машины
  • BIN-файлы содержимого памяти виртуальной машины
  • AVHD-файлы разностного диска для моментального снимка

Как показано на рисунке 2-17, при выборе снимка в области «Моментальные снимки» на панели «Действия» отображаются различные действия, которые можно выполнить с этим снимком. Эти действия описаны ниже.

  • Применить Это действие позволяет скопировать состояние виртуальной машины из выбранного снимка в активную виртуальную машину. При этом виртуальная машина возвращается к состоянию, описанному в выбранном снимке. При выборе этого действия все несохраненные данные в активной виртуальной машине будут потеряны. В связи с этим перед применением состояния в снимке выводится запрос на создание нового моментального снимка текущего состояния виртуальной машины.
  • Переименовать Эта команда позволяет изменить описательное имя выбранного снимка.
  • Удалить снимок Эта команда позволяет удалить только файлы, связанные с выбранным снимком. Файлы других снимков не будут удалены. После удаления снимка возврат к описанному в нем состоянию будет невозможным. Текущее состояние активной виртуальной машины при этом не изменяется.
  • Удалить дерево снимков Это действие позволяет удалить выбранный моментальный снимок и все снимки, иерархически подчиненные ему. Текущее состояние активной виртуальной машины при этом не изменяется.

Примечание Моментальные снимки доступны только для чтения. Единственными параметрами снимка являются его имя и присоединенное описание.

При выборе виртуальной машины на панели «Виртуальные машины» на панели «Действия» отобразятся следующие задачи:

  • Моментальный снимок Это действие позволяет сделать еще один моментальный снимок виртуальной машины.
  • Вернуть Это действие позволяет применить предыдущий моментальный снимок, расположенный сразу под зеленой стрелкой «Сейчас» на панели «Моментальные снимки».

Совет При удалении всего дерева снимков к запущенной виртуальной машине будет применен последний снимок. Чтобы получить первоначальную конфигурацию виртуальной машины, необходимо делать первый моментальный снимок после ее настройки, но до внесения изменений для тестирования конфигурации. Это позволяет применить первый (исходный) снимок перед удалением дерева моментальных снимков, чтобы вернуть конфигурацию виртуальной машины к исходному состоянию.

На производительность виртуальных машин влияет не только настройка физического сервера, но и параметры настройки самой виртуальной машины. В следующих разделах приводятся рекомендации, которые необходимо учитывать при настройке виртуальных машин в Hyper-V.

Измените расположения файлов виртуального жесткого диска и конфигурации компьютера по умолчанию

Измените расположения по умолчанию, в которых хранятся файлы виртуальных жестких дисков и конфигурации виртуальной машины. Эти файлы по умолчанию хранятся на диске с установленной ОС. Для лучшей производительности их по возможности следует переместить на другой диск в сети хранения SAN. Если средства хранения SAN не настроены, используйте другой внутренний отказоустойчивый диск или диски, не поддерживающие ОС, которые можно целиком выделить для хранения данных виртуальной машины.

Установите службы интеграции

Первой (и, вероятно, наиболее важной) рекомендацией для виртуальных машин является немедленная установка служб интеграции Hyper-V, если ОС виртуальной машины поддерживается. После этого следует при необходимости обновить службы интеграции.

Удалите дополнения виртуальной машины и выполните сжатие виртуальных жестких дисков

При миграции виртуальных машин с Virtual PC или Virtual Server 2005 R2 следует удалить дополнения виртуальных машин и сжать виртуальных жесткий диск перед перемещением диска на сервер Hyper-V.

Настройте оптимальную производительность дисплея

Для оптимального отображения в виртуальной машине убедитесь в том, что интерфейс дисплея настроен на значение «Максимальная производительность», чтобы аппаратное ускорение имело значение «Полное».

Настройте фиксированные виртуальные жесткие диски

Настраивайте фиксированные виртуальные жесткие диски вместо динамически расширяющихся дисков. Это позволяет повысить производительность, свести к минимуму вероятность фрагментации, а также облегчает управление пространством на физическом диске. Перед созданием нового виртуального жесткого диска следует выполнять на нем дефрагментацию.

Используйте виртуальные адаптеры SCSI для дисков данных

Виртуальная машина Hyper-V должна загружаться с виртуального контроллера IDE, но после этого для подключения дополнительных виртуальных жестких дисков можно использовать виртуальные адаптеры SCSI.Несмотря на то, что отличия виртуального контроллера IDE и виртуального контроллера SCSI в Hyper-V минимальны (при установленных службах интеграции), к виртуальному контроллеру SCSI можно подключить больше виртуальных жестких дисков большего размера (4 контроллера с 64 виртуальными дисками, что составляет 256 дисков на машину). Таким образом, чтобы использовать больше четырех виртуальных дисков на машину, используйте контроллер SCSI.

Выделяйте ресурсы ЦП в зависимости от предполагаемого использования

Чтобы обеспечить достаточное количество ресурсов ЦП на физическом сервере, следует определить производительность виртуальной машины при обработке соответствующих рабочих нагрузок. По умолчанию сервер Hyper-V обрабатывает все виртуальные машины одинаковым образом. Такой подход на практике может быть нерациональным решением. При выделении ресурсов ЦП физической машины важно не превысить лимит, выделяя больше ресурсов физической машины, чем имеется в наличии. Следующая версия System Center Virtual Machine Manager (SCVMM 2008) будет играть ключевую роль в мониторинге производительности виртуальной машины.

На следующем рисунке показаны параметры конфигурации процессора для виртуальной машины:


Параметры конфигурации процессора на предыдущем рисунке описаны ниже:

  • Резерв для виртуальных машин Доля логического ЦП, которая выделяется для работы виртуальной машины. По мере запуска виртуальных машин доступная на сервере Hyper-V мощность сокращается
  • Ограничение для виртуальных машин Доля загрузки логического ЦП, которую не может превышать запущенная виртуальная машина.
  • Относительный вес Определяет распределение ЦП при конфликте запущенных виртуальных машин. Чем больше число, тем больше мощности выделено виртуальной машине. Относительный вес может иметь значение от 1 до 10 000.
  • Выполнить перенос на физический компьютер с другой версией процессора Этот параметр введен в Hyper-V R2 и позволяет включить или отключить режим совместимости процессора. Дополнительные сведения см. ниже во врезке «Принцип работы: режим совместимости процессора».
  • Запустить более старую операционную систему, например Windows NT Сокращает уязвимость некоторых операционных систем к высоким значениям CPUID. Неожиданно высокие значения CPUID могут служить причиной аварийного завершения работы. В исходной версии Hyper-V этот параметр назывался «Ограничить функциональность процессора».

Попробуйте использовать транзитные диски

При создании виртуальной машины рекомендуется использовать виртуальные жесткие диски, но в некоторых случаях более оптимальным будет использование транзитных дисков. Производительность при использовании транзитных дисков немного выше производительности виртуального жесткого диска VHD. Транзитные диски сохраняют буквы и позволяют настраивать диски размером больше 2 ТБ (если это поддерживается внешней системой хранения). В то же время для применения транзитных дисков необходимо переместить файлы конфигурации виртуальной машины на другой жесткий диск или сетевой ресурс. Кроме того, транзитные диски не поддерживают моментальные снимки и не являются переносимыми, как VHD-файлы.

Обеспечьте высокую доступность общего файлового ресурса

Если для хранения данных конфигурации виртуальной машины используется общий файловый ресурс, рекомендуется обеспечить его высокую доступность (например, разместить его в отказоустойчивом кластере). Кроме того, необходимо изменить параметры безопасности файлового ресурса и разрешить серверу Hyper-V (всем его узлам, если он находится в отказоустойчивом кластере) доступ на запись.

Оптимизируйте производительность контроллеров домена

Hyper-V поддерживает контроллеры домена. При их использовании следует выполнять приведенные ниже рекомендации.

  • Никогда не сохраняйте состояние в контроллере домена, так как это может вызвать ошибки его синхронизации.
  • Никогда не приостанавливайте виртуальную машину контроллера домена на долгое время, так как это может отрицательно повлиять на репликацию.
  • Всегда завершайте работу контроллера домена.
  • Не создавайте моментальные снимки контроллера домена.
  • Примите решение по синхронизации времени. Суть его заключается в необходимости использования служб интеграции Hyper-V для синхронизации. Если виртуализованные контроллеры домена обрабатываются как аппаратные контроллеры, отключите синхронизацию времени в параметрах для каждой виртуальной машины и укажите внешний источник времени для эмулятора PDC. После этого разрешите всем остальным контроллерам домена синхронизацию с эмулятором PDC. Если принято решение о синхронизации с родительским разделом, включите синхронизацию времени только для контроллера с ролью FSMO эмулятора PDC.

- Отдел CSS Global Technical Readiness (GTR)

Если планируется использовать системы хранения данных с интерфейсом iSCSI – крайне рекомендуется выделить для работы iSCSI отдельный сетевой интерфейс, а то и два – для работы MPIO. Если LUN’ы будут монтироваться в хостовой ОС – то нужно просто оставить один или два интерфейса не привязанными к виртуальным сетям. Если же iSCSI-инициаторы будут работать внутри виртуальных машин – для них нужно создать одну или две отдельных виртуальных сети, которые будут использоваться исключительно для трафика iSCSI.
VLAN-тегирование
VLAN-тегирование (IEEE 802.1q) означает «маркировку» сетевых пакетов специальным маркером (тегом), благодаря которому пакет может быть ассоциирован с определенной виртуальной сетью (VLAN). При этом хосты, принадлежащие к разным VLAN, будут находиться в разных широковещательных доменах, хотя и подключаться физически к одному и тому же оборудованию. Виртуальные сетевые адаптеры в Hyper-V так же поддерживают тегирование VLAN. Для этого нужно зайти в свойства виртуального адаптера в настройках виртуальной машины и прописать там соответствующий VLAN ID.
Активное оборудование
До сих пор мы говорили о сетевых интерфейсах и виртуальных сетевых адаптерах в пределах хоста. Но необходимо так же учитывать и пропускную способность активного оборудования – к примеру, коммутаторов, к которым наши хосты будут подключаться. Простой пример: если имеется 8-портовый коммутатор 1Gbps, и каждый из портов утилизирует весь 1Gbps пропускной способности – то 1Gbps-аплинк физически не сможет пропускать такие объемы трафика, что приведет к падению производительности. Особенно это приходится учитывать при использовании iSCSI – нагрузки там могут быть высоки, а задержки пакетов могут быть достаточно критичны для производительности. Поэтому при использовании iSCSI крайне рекомендуется пускать iSCSI-трафик через отдельные коммутаторы. Теперь перейдем к рекомендациям по ОС хоста. Как известно, ОС Windows Server 2008 R2 может быть установлена в двух разных режимах: Full и Server Core. С точки зрения работы гипервизора эти режимы ничем не отличаются. Хотя режим Server Core на первый взгляд кажется сложнее (особенно для малоопытных администраторов), рекомендуется использовать именно этот режим. Установка ОС в режиме Server Core имеет следующие преимущества по сравнению с полной установкой:
  • Меньший объем обновлений
  • Меньшая поверхность атаки для потенциальных злоумышленников
  • Меньшая нагрузка на процессор и память в родительской партиции
Запуск других приложений в хостовой ОС
Запуск в гостевой ОС сторонних (не имеющих отношения к 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
ОС Windows 7 и Windows Server 2008 R2 содержат сервисы интеграции в инсталляционном пакете, поэтому на эти ОС их не нужно устанавливать дополнительно.
Установка интеграционных сервисов позволяет использовать синтетические устройства, имеющие более высокую производительность по сравнению с эмулируемых. Подробнее о разнице между эмулируемыми и синтетическими устройствами – в моей статье об архитектуре Hyper-V.
Вот список драйверов, входящих в Integration Services:
  • 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 приложения, запущенные на виртуальной машине автоматически сбрасывают данные на диск, и потому бэкап получается консистентным.
Для установки интеграционных сервисов в ОС Windows нужно выбрать Action – Integration Services Setup . При этом к виртуальной машине автоматически подмонтируется ISO-образ с файлами установки, и запустится процесс инсталляции. Если в гостевой системе отключен запуск Autorun, то процесс инсталляции придется запустить вручную.
Интеграционные компоненты для Linux не включены в дистрибутив Windows Server – их необходимо загрузить с сайта Microsoft.
Sysprep: создаем мастер-образ
Если у вас имеется достаточно большая инфраструктура, и вам приходится часто создавать новые виртуальные машины и устанавливать на них ОС –набор готовых «мастер-образов» виртуальных жестких дисков поможет сильно сэкономить время. Такой «мастер-образ», хранящийся в виде VHD-файла, можно скопировать, а затем создать новую виртуальную машину с использованием VHD в качестве жесткого диска. При этом на нем уже будет установлена ОС и некоторый необходимый набор ПО (в частности – сервисы интеграции).
Для создания такого мастер-образа необходимо:
  1. Создать новую виртуальную машину
  2. Произвести установку ОС, сервисов интеграции, всех доступных обновлений системы и дополнительного ПО, если таковое необходимо
  3. Подготовить установленную ОС с помощью утилиты Sysprep, которая удалит информацию о пользователе, ключе продукта и уникальный идентификатор (SID).
При первой загрузке виртуальной машины с такого образа запустится процедура, именуемая «mini-setup». При этом будет предложено заново ввести имя компьютера, пароль администратора, и некоторые другие данные.
Оффлайн-установка обновлений
Мы создали мастер-образ, и он будет храниться у нас в течение длительного времени. И все бы ничего, но есть одна небольшая проблема: периодически выходят обновления системы, и при развертывании виртуальной машины с мастер-образа придется установить все обновления, вышедшие с момента создания мастер-образа. Если образ был создан, скажем, год или два тому назад – объем обновлений может быть достаточно большим. Кроме того, сразу после подключения к сети ОС без последних обновлений подвержена всевозможным угрозам безопасности, в том числе – и вирусам. Есть прекрасный инструмент, позволяющий устанавливать обновления прямо на мастер-образы виртуальных машин – он называется «Offline Virtual Machine Servicing Tool». Для его использования необходимо развернуть System Center Virtual Machine Manager (SCVMM), а так же иметь развернутый сервер WSUS или SCCM, откуда, собственно говоря, обновления и будут подтягиваться. Принцип его действия следующий:
  1. Виртуальная машина разворачивается на специальном, выбираемом с помощью SCVMM, хосте – так называемый maintenance host.
  2. Виртуальная машина запускается, и на ней производится установка всех необходимых обновлений.
  3. Виртуальная машина останавливается, и VHD-файл возвращается в библиотеку уже с установленными обновлениями.
Offline Virtual Machine Servicing Tool распространяется бесплатно. Чтобы больше узнать об этом инструменте и скачать его – можно зайти на официальный сайт:

В данной статье мы рассмотрим несколько способов повышения производительности виртуальной машины VMware Workstation, Oracle VirtualBox, Microsoft Hyper-V или любой другой. Виртуальные машины довольно требовательны к характеристикам компьютера, ведь во время их работы на ПК одновременно запущено несколько операционных систем. Как результат, виртуальная машина может быть значительно медленнее основной операционной системы или вообще работать с притормаживанием.

В данной статье мы рассмотрим несколько способов повышения производительности виртуальной машины , Oracle VirtualBox, Microsoft Hyper-V или любой другой.

Содержание:


Динамический или фиксированный виртуальный жесткий диск?

Создавая виртуальную машину, можно создать два разных типа виртуальных жестких дисков. По умолчанию виртуальная машина использует динамический диск, который занимает необходимое место на физическом носителе информации и увеличивается лишь по мере заполнения.

Например, создавая виртуальную машину с динамическим диском в 30 ГБ, он не займёт сразу же 30 ГБ жесткого диска компьютера. После установки операционной системы и необходимых программ его размер будет порядка 10-15 ГБ. Лишь по мере добавления данных, он может увеличиться до 30 ГБ.

Это удобно с той точки зрения, что виртуальная машина будет занимать на жестком диске место, которое пропорционально объёму хранимых на ней данных. Но, работа динамического жесткого диска медленнее фиксированного (иногда также называют распределённым).

Создавая фиксированный диск, все 30 ГБ на жестком диске компьютера будут выделены под диск виртуальной машины сразу же, независимо от объёма хранимых на нём данных. То есть, фиксированный жесткий диск виртуальной машины занимает больше места жесткого диска компьютера, но сохранение или копирование файлов и данных на нём происходит быстрее. Он не так сильно подвержен фрагментации, так как пространство под него выделяется максимально большим блоком, вместо того, чтобы добавляться маленькими частями.


Установка пакета инструментов виртуальной машины

После установки на виртуальную машину гостевой операционной системы, первое, что необходимо сделать – это установить пакет инструментов или драйверов вашей виртуальной машины, например: VirtualBox Guest Additions или VMware Tools. Такие пакеты содержат драйвера, которые помогут гостевой операционной системе работать быстрее.

Установить их просто. В VirtualBox, загрузите гостевую операционную систему и выберите Устройства / Подключить образ диска Дополнительной гостевой ОС… «Этот компьютер»



В VMware Workstation, выберите меню Виртуальная машина / Установить паке VMware Tools… После чего запустите установщик, который появится как отдельный диск в папке «Этот компьютер» гостевой операционной системы.



Добавьте папку с виртуальной машиной в исключения вашей антивирусной программы

Антивирусная программа кроме прочих, также сканирует файлы виртуальной машины, что снижает её производительность. Но дело в том, что антивирусная программа не имеет доступа к файлам внутри гостевой операционной системы виртуальной машины. Поэтому такое сканирование бессмысленно.

Чтобы избавится от снижения производительности виртуальной машины, можно добавить папку с ней в исключения антивирусной программы. Антивирус будет игнорировать все файлы такой папки.


Активация Intel VT-x или AMD-V

Intel VT-x и AMD-V – это специальные технологии виртуализации, которые предназначены для обеспечения большей производительности виртуальных машин. Современные процессоры Intel и AMD, как правило обладают такой функцией. Но на некоторых компьютерах она автоматически не активирована. Чтобы её включить, необходимо перейти в BIOS компьютера и активировать её вручную.

AMD-V часто уже активирована на ПК, если поддерживается. А Intel VT-x чаще всего отключена. Поэтому, убедитесь в том, что указанные функции виртуализации уже активированы в BIOS, после чего включите их в виртуальной машине.


Больше оперативной памяти

Виртуальные машины требовательны к объёму доступной оперативной памяти. Каждая виртуальная машина включает полноценную операционную систему. Поэтому необходимо разделить операционную систему вашего ПК на две отдельные системы.

Microsoft рекомендует минимум 2 ГБ оперативной памяти для своих операционных систем. Соответственно, такие требования актуальны и для гостевой операционной системы виртуальной машины с Windows. А если планируется использование на виртуальной машине стороннего требовательного программного обеспечения, то для её нормальной работы оперативной памяти потребуется ещё больше.

В случае, если уже после создания виртуальной машины оказалось, что оперативной памяти для её нормальной работы недостаточно, то её можно добавить в настройках виртуальной машины.

Прежде чем делать это, убедитесь, что виртуальная машина отключена. Также, не рекомендуется предоставлять виртуальной машине более чем 50% физически присутствующей на компьютере виртуальной памяти.


Если, выделив для виртуальной машины 50% памяти вашего компьютера выяснилось, что она не стала работать достаточно комфортно, то возможно для нормальной работы с виртуальными машинами вашему компьютеру недостаточно оперативной памяти. Для нормальной работы любой виртуальной машины будет достаточно 8 ГБ оперативной памяти, установленной на основном ПК.

Выделить больше CPU

Основная нагрузка при работе виртуальной машины, приходится на центральный процессор. Таким образом, чем больше мощности центрального процессора виртуальная машина может занять, тем лучше (быстрее) она будет работать.

Если виртуальная машина установлена на компьютере с мульти-ядерным процессором, то в настройках виртуальной машины для неё можно выделить несколько ядер для её работы. Виртуальная машина на двух и более ядрах центрального процессора будет работать ощутимо быстрее чем на одном.


Установка виртуальной машины на компьютере с одноядерным процессором нежелательна. Работать такая виртуальная машина будет медленно и выполнение ею каких-либо задач будет не эффективным.

Правильные настройки видео

На скорость работы виртуальной машины могут также влиять настройки видео. Например, включение 2D или 3D-ускорения видео в VirtualBox, позволяет работать некоторым приложениям значительно быстрее. То же касается и возможности увеличения видеопамяти.

Но, как и в случае с оперативной памятью, многое зависит от видеоадаптера, который установлен на основном компьютере.


Виртуальная машина и SSD диск

Первым и лучшим усовершенствованием компьютера на сегодняшний день является установка на него SSD диска. Это ощутимо ускорит работу компьютера, а соответственно и установленной на нём виртуальной машины.

Некоторые пользователи устанавливают виртуальные машины на другой (HDD) диск своего компьютера, оставляя на SSD диске лишь основную операционную систему. Это делает работу виртуальной машины медленнее. Освободите место на SSD диске и перенесите виртуальную машину на него. Разница в скорости работы почувствуется с первых минут.

По возможности, не размещайте диски виртуальных машин на внешних носителях информации. Они работают ещё медленнее чем встроенный HDD диск. Возможны варианты с подключением виртуальной машины через USB 3.0, но о USB 2.0 и речи быть не может – виртуальная машина будет работать очень медленно.

Приостановка вместо закрытия

Когда вы закончили работать с виртуальной машиной, её можно приостановить вместо полного выключения.


Запуская приложение для работы с виртуальными машинами следующий раз, вы можете включить виртуальную машину таким же способом как обычно. Но она загрузится значительно быстрее и именно в том состоянии и с того места, на котором вы закончили работать прошлый раз.

Приостановка гостевой операционной системы очень похожа на использование гибернации вместо выключения ПК.

Улучшение производительности внутри виртуальной машины

Всегда необходимо помнить, что установленная на виртуальную машину операционная система мало чем отличается от той, которая работает на основном компьютере. Её работу можно ускорить, следуя тем же принципам и используя те же методы, которые актуальны для любой другой операционной системы.

Например, производительность системы увеличится если закрыть фоновые программы или те, которые автоматически запускаются при старте системы. На производительность системы влияет необходимость осуществления дефрагментации диска (если виртуальная машина расположена на HDD диске), и так далее.

Программы для работы с виртуальными машинами

Одни пользователи уверяют, что Oracle VirtualBox самый быстрый инструмент для работы с виртуальной машиной, для других – VMware Workstation или

Сегодня виртуализация широко используется практически в любой части ИТ-индустрии - от личных мобильных устройств до мощных вычислительных центров, позволяя решать самые разные задачи. Виртуализация может выступать в разных формах - начиная от виртуализации и эмуляции платформ, заканчивая виртуализацией ресурсов. Но сегодня речь пойдет о нативной аппаратной виртуализации - современные процессоры поддерживают ее с помощью наборов инструкций, таких как Intel VT-x или AMD-V.

Нативная виртуализация - это технология, предоставляющая вычислительные ресурсы, абстрагированные от аппаратного уровня. Если брать, например, сегмент серверов, такое абстрагирование позволяет работать нескольким виртуальным системам на одной аппаратной платформе, а также дает возможность легко переносить виртуальные системы с одного аппаратного сервера на другой - например, при его выходе из строя или модернизации.

До появления аппаратной поддержки виртуализации, все плюсы технологии перекрывали большие потери производительности и низкая скорость работы виртуальной машины в целом. Популярность виртуальных машин стала расти по мере того, как производители аппаратных платформ стали предпринимать активные шаги по снижению издержек на виртуализацию (появление аппаратной поддержки, введение новых инструкций, сокращение таймингов при выполнении инструкций), а производительность процессоров стала достаточной, чтобы «тянуть» виртуальные машины с приемлемой скоростью.

Как уже говорилось выше, один из ключевых факторов для нормальной работы нативной аппаратной виртуализации - поддержка процессором специфических наборов инструкций. Intel представила свой набор инструкций VT-x в 2005 году, еще в рамках архитектуры Netburst, применявшейся в процессорах Pentium 4. AMD разработала свой набор инструкций, AMD-V, и первые процессоры с его поддержкой вышли на рынок в 2006 году. Некоторое время спустя обе компании предложили новые наборы инструкций: Intel EPT (Extended Page Tables) и AMD RVI (Rapid Virtualization Indexing) соответственно. Суть обоих наборов в том, что гостевая ОС получает контроль над виртуализованными страницами памяти напрямую, минуя гипервизор - это снижает нагрузку на него и несколько поднимает скорость виртуальной системы. Для проброса напрямую устройств в гостевую ОС компания Intel разработала набор инструкций Intel VT-d. В арсенале Intel имеются и другие наборы инструкций для виртуализации: Intel VT FlexMigration, Intel VT FlexPriority, VPID, VT Real Mode, VMFUNC.

В новых поколениях процессоров производители не только предлагают новые возможности наборов инструкций виртуализации, но и сокращают тайминги выполнения конкретных инструкций, что позволяет повысить производительность виртуальной системы в целом. Для примера, в процессорах Pentium 4 задержка на выполнение инструкций VMCALL и VMRESUME приближалась к 1500 наносекундам, а в Core 2 Duo (Penryn) она составляла уже менее 500 наносекунд.

Сокращение разрыва в производительности между реальной и виртуальной системой сделало виртуальные машины (ВМ) гораздо более выгодными в использовании, в том числе для решения задач корпоративного уровня. Наиболее очевидными достоинствами являются повышение средней загрузки оборудования (несколько ВМ равномерно используют ресурсы аппаратной платформы, сокращая время простоя), а также запуск устаревшей ОС, которая не удовлетворяет современным требованиям (например, по безопасности), но при этом необходима для запуска и работы уникального ПО (или в силу иных причин). Кстати говоря, столь популярные на сегодня облачные сервисы также имеют в своей основе технологии виртуализации. Суммируем основные преимущества, которые предприятие получает от применения виртуализации. Это:

  • увеличение средней загрузки физического сервера, а, следовательно, и коэффициента использования аппаратуры, что, в свою очередь снижает общую стоимость АО;
  • простота миграции виртуальных серверов с одного физического на другой при апгрейде аппаратного обеспечения;
  • простота восстановления работоспособности виртуального сервера при аппаратном сбое оборудования: виртуальную машину значительно проще перенести на другой физический сервер, чем переносить конфигурацию и ПО с одной физической машины на другую;
  • существенное упрощение перевода пользователей или бизнес-процессов на новые ОС и новое ПО: использование ВМ позволяет делать это по частям и не трогая аппаратные ресурсы; кроме того, в процессе можно легко анализировать и исправлять ошибки, а также оценивать целесообразность внедрения «на лету»;
  • поддержка в бизнес-процессах работы устаревшей ОС, от которой по каким-либо причинам в данный момент времени невозможно отказаться;
  • возможность тестирования тех или иных приложений на ВМ, не требуя дополнительного физического сервера и т. д.
  • другие сферы применения.

Таким образом, целесообразность использования виртуализации на сегодняшний день уже не вызывает вопросов. Технология предоставляет слишком много плюсов с точки зрения организации бизнеса, что заставляет закрывать глаза даже на неизбежные потери производительности системы.

Тем не менее, всегда полезно понимать, о каком именно уровне потерь производительности между реальной и виртуальной системой идет речь. Тем более, что они часто сильно зависят от типа задач и требований ПО к аппаратным ресурсам. Где-то это важно с точки зрения учета ресурсов, где-то - поможет определить, какой уровень производительности реальной системы необходим, чтобы добиться нужного уровня производительности от виртуальной системы. Наконец, есть пограничные типы задач, которые могут решаться с помощью как виртуальных, так и реальных систем - и там вопрос потерь может оказаться решающим фактором.

Методика тестирования

Для тестирования использовался набор тестовых приложений из обычной методики исследования производительности платформ сайт от 2011 года, с некоторыми оговорками. Во-первых, из набора были убраны все игры, т. к. виртуальный графический адаптер с драйвером Oracle обладает слишком слабой производительностью: в большинстве случаев игры даже не запускались. Во-вторых, убраны приложения, которые стабильно не могли завершить тестовый сценарий на одной из конфигураций - это Maya, Paintshop Pro, CorelDraw. По этой причине нельзя сравнивать итоговые рейтинги и суммарный балл производительности нашего тестового стенда с базой протестированных процессоров. Однако сравнение результатов отдельных тестов вполне корректно.

Также нужно учитывать, что в методике используются версии приложений от 2011 года. Они могут не поддерживать новые технологии, оптимизации и наборы инструкций, внедренные после этого времени. При этом наличие такой поддержки в более новых версиях приложений может существенно влиять на производительность этих приложений - и в реальной, и в виртуальной системе.

Тестовый стенд

Для тестирования мы взяли систему с конфигурацией, подходящей на роль как сервера, так и высокопроизводительной рабочей станции. В будущих материалах мы проверим на ней возможности виртуализации с разными хост-системами. Сегодня в качестве хоста используется Windows 7.

  • Процессор: Intel Xeon E3-1245 v3
  • Материнская плата: SuperMicro X10SAE
  • Оперативная память: 4 × Kingston DDR3 ECC PC3-12800 CL11 8 ГБ (KVR16LE11/8)
  • Жесткий диск: Seagate Constellation ES.3 1 ТБ (ST1000NM0033)
  • Операционная система: Windows 7 x64

ПО для виртуализации

В этом материале тестирование проводится с использованием Oracle VM VirtualBox.

Oracle VM VirtualBox - это бесплатная виртуальная машина (ВМ), распространяющаяся по лицензии GNU GPL 2. Она поддерживает обширный список операционных систем: Windows, OS X, Solaris и большое количество Linux-дистрибутивов (Ubuntu, Debian, openSUSE, SUSE Linux Enterprise Server, Fedora, Mandriva, Oracle Linux, Red Hat Enterprise Linux, CentOS). Изначально ВМ разрабатывалась Innotek, которая впоследствии была куплена Sun Microsystems, а в 2010 году - Oracle. ВМ поддерживает проброс USB-устройств в гостевую ОС, обеспечивает доступ в интернет и подключение удаленного рабочего стола. Гостевые ОС могут быть как 32-битными, так и 64-битными. Система поддерживает аппаратное ускорение 2D и 3D, а также PAE/NX, VT-x, AMD-V, Nested Paging. Эмулирует широкий спектр распространенных устройств: чипсет PIIX3 или ICH9, контроллеры IDE PIIX3,PIIX4, ICH6, аудиокарт Sound Blaster 16, AC97 или Intel HD, а также сетевых карт PCnet PCI II (Am 79 C 970 A), PCnet - Fast III (Am 79 C 973), Intel PRO /1000 MT Desktop (82540 EM), Intel PRO /1000 T Server (82543 GC), Intel PRO /1000 MT Server (82545 EM). Поддерживает образы жестких дисков VDI, VMDK, VHD, позволяет создавать общие папки для гостевой и хост-ОС, а также сохранять состояния ВМ.

У Oracle существует более серьезный аналог VM VirtualBox, Oracle VM Server для процессоров х86 и SPARC , базирующийся на гипервизоре Xen. Т. е., это совершенно другой продукт для другого сегмента рынка. Oracle VM Server поддерживает до 160 потоков на физическом сервере и до 128 виртуальных CPU в гостевых ОС, а максимальный объем ОЗУ - 4 ТБ, в то время как VM VirtualBox поддерживает лишь 32 виртуальных CPU для гостевой ОС и 1 ТБ ОЗУ.

Подводя итог, можно охарактеризовать VM VirtualBox как ВМ для домашнего использования и для использования в маленьких фирмах, а простота настройки (по сути установил и всё работает) не требует высокой квалификации у системного администратора (или вообще не требует выделенного системного администратора по причине простоты использования). Продукт же Oracle VM Server предназначен для более крупного бизнеса - он предоставляет и бо́льшую функциональность, и поддержку более мощных серверов, но требует и более высокой квалификации от системного администратора.

Настройки ПО

Для этого тестирования на тестовый стенд с ОС Windows 7 x64 была установлена ВМ Oracle VM VirtualBox, на которую был развернут образ Windows 7 x64 с тестовым пакетом приложений. В следующих материалах мы попробуем, как работают другие хост-ОС и ПО для виртуализации.

Сама виртуальная машина сконфигурирована следующим образом: включена поддержка Nested Paging, VT-x, PAE/NX, 3D- и 2D-ускорение. Для нужд ВМ выделено 24 Гб ОЗУ и 256 Мб под видеопамять.

Сравнение с Intel Core 7-4770k

Для сравнительной оценки общей производительности тестовой платформы на базе Intel Xeon E3-1245 v3 в таблицах также присутствуют результаты процессора Intel Core i7-4770K из . Это позволяет примерно соотнести уровень производительности одного из топовых потребительских процессоров для ПК и серверного процессора Xeon, плюс дает много других интересных возможностей сравнения исходя из разницы в конфигурациях. Правда, тут нужно учитывать, что параметры двух систем немного отличаются, и это оказывает влияние на результаты. Сведем в таблицу характеристики стендов.

Intel Xeon E3-1245 v3 Intel Core i7-4770K
Количество ядер/потоков, шт. 4/8 4/8
Базовая/Boost частота, МГц 3,4/3,8 3,5/3,9
Объем кэша L3, МБ 8 8
Используемая оперативная память в тестовом стенде 4 × Kingston KVR16LE11/8 4 × Corsair Dominator Platinum CMD16GX3M4A2666C10
Количество каналов, шт. 2 2
Частота функционирования, МГц 1600 1333
Тайминги 11-11-11-28 9-9-9-24
ECC да нет
Объем модуля, ГБ 8 4
Суммарный объем, ГБ 32 16
Графическая карта Intel P4600 Palit GeForce GTX 570 1280 МБ

Core i7-4770k имеет рабочие частоты на 100 МГц выше, что может дать ему некоторое преимущество. С оперативной памятью ситуация сложная: с одной стороны, у Core i7-4770k вдвое меньше объем и ниже частота работы, 1333 МГц против 1600; с другой, у платформы Xeon память имеет более высокие тайминги, а также используется коррекция ошибок ECC.

Наконец, в системе Core i7-4770k установлена внешняя видеокарта Palit GeForce GTX 570 1280 МБ. В тестовой методике образца 2011 года лишь несколько приложений могут задействовать ресурсы графической карты, и в этих приложениях следует ожидать существенного превосходства системы с Core i7-4770k. К тому же, внешняя карта не конкурирует с процессором за доступ к ОЗУ, как это делает интегрированная Intel P4600, что тоже должно давать Core i7-4770k определенное преимущество. С другой стороны, в драйверах Р4600 должны присутствовать определенные оптимизации, позволяющие поднять производительность профессиональных приложений. Однако для них наверняка требуется и оптимизация самого ПО, так что в нашем тестировании (напомню, у нас используются версии приложений 2011 года) эти оптимизации, скорее всего, не заработают. А в жизни придется проверять каждый случай отдельно, ибо оптимизация ПО - это очень тонкий процесс.

Конфигурации, участвующие в тестировании

На реальной системе тестовый пакет запускался в двух конфигурациях: с отключенной и включенной технологией Intel Hyperthreading (далее НТ). Это позволяет оценить ее влияние на производительность и реальных, и виртуальных систем - а заодно и понять, где можно использовать младшую модель Intel Xeon этого поколения, у которого НТ нет. Виртуальная машина запускалась в двух конфигурациях: под 4 вычислительных ядра и под 8. В итоге мы получаем следующие конфигурации:

  1. Реальная система без HT (обозначается hw wo/HT)
  2. Реальная система с HT (обозначается hw w/HT)
  3. Виртуальная машина с 4 ядрами на 4-ядерном процессоре без НТ (обозначается vm 4 core wo/HT)
  4. Виртуальная машина с 4 ядрами на 4-ядерном процессоре с НТ (обозначается vm 4 core w/HT)
  5. Виртуальная машина с 8 ядрами на 4-ядерном процессоре с НТ (обозначается VM 8 core)

Для удобства сведем всё в таблицу.

Расчет издержек виртуализации

Важно обратить внимание, что издержки виртуализации измеряются не относительно общего уровня, а в сравнении схожих аппаратных и виртуальных конфигураций.

Величина издержек виртуализации для 8-ядерной ВМ будет считаться относительно Intel Xeon E3-1245 v3 с включенной технологией HT (Real w/HT), а 4-ядерной ВМ - относительно Intel Xeon E3-1245 v3 без HT (Real wo/HT). Издержки экспериментальной конфигурации 4-ядерной ВМ на 8-поточном процессоре будут считаться относительно Intel Xeon E3-1245 v3 без HT.

Также в рамках тестирования будет введен рейтинг производительности, где за 100 баллов принята производительность Intel Xeon E3-1245 v3 без HT .

Приемлемый уровень потерь

Самый интересный вопрос - какой уровень потерь производительности стоит считать допустимым? В теории, уровень в 10-15 процентов представляется нам вполне приемлемым, учитывая те плюсы, которые дает предприятию виртуализация. Особенно учитывая, что повышается средний уровень загрузки оборудования и сокращается время простоя.

На первом этапе мы решили посмотреть, насколько упадет производительность при переходе на виртуальную систему в синтетическом тесте. Для этого мы взяли относительно простой бенчмарк Cinebench R15, который, однако, неплохо определяет уровень производительности центрального процессора в расчетах, связанных с трехмерным моделированием.

Real w/HT VM 8 core Real wo/HT VM 4 core
Single Core 151 132 (−13%) 151 137 (−9%)
Many Core 736 668 (−9%) 557 525 (−6%)

4-поточная конфигурация имеет меньшую производительность, но и потери в процентах у нее также меньше - как в однопоточной нагрузке, так и в многопоточной. Что касается производительности ВМ, то, несмотря на большие потери, 8-ядерная конфигурация оказывается все равно быстрее 4-ядерной. Также можно предположить, что т. к. графический адаптер эмулируется драйвером Oracle, то наличие какой-либо нагрузки на графическую подсистему должно значительно увеличивать издержки для виртуальных систем, т. к. создает дополнительную нагрузку на процессор.

Ну а в целом пока будем ориентироваться на эти цифры - около 10% потери производительности для 8-поточной конфигурации и порядка 6% для 4-поточной.

Исследование производительности

Интерактивная работа в трехмерных пакетах

При интерактивной работе в некоторых приложениях CAD активно используется графическая карта, что будет серьезно влиять и на результаты, и на разницу в производительности между реальной и виртуальной системой.

CAD CreoElements

В режиме интерактивной работы в CAD CreoElements потери при виртуализации составляют внушительные 64%, причем для всех конфигураций. Скорее всего, из-за того, что в реальной системе задействуются ресурсы видеокарты, а в виртуальной нагрузка ложится на центральный процессор через драйвера Oracle.

Интересно отметить, что i7-4770K показывает меньшую производительность, чем Xeon, даже несмотря на использование достаточно мощной дискретной видеокарты. (С. И. - обещанные Intel оптимизации драйверов в серии профессиональных ускорителей P4600/P4700?)

CAD Creoelements Real w/HT hw 4/8 vm 8
Прирост от НТ −4% −5%

Технология HT негативно сказывается на производительности как реальной системы, так и ВМ - 4% и 5% потерь соответственно.

CAD SolidWorks

В SolidWorks картина, в целом, не меняется - издержки переходят все разумные границы, показывая более 80% потери производительности. Правда, в ассиметричной конфигурации (CPU: 4 ядра, 8 потоков; ВМ: 4 ядра) издержки заметно меньше, чем в двух других конфигурациях. Возможно, это объясняется работой фоновых процессов в хост-ОС: т. е. активация НТ удваивает количество возможных потоков до 8, где 4 выделяются ВМ, а 4 остаются в распоряжении хост-ОС.

Десктопный 4770K значительно быстрее Xeon (скорее всего, благодаря тому, что Solidworks умеет задействовать в этом сценарии ресурсы графической карты - С. К.). В целом, огромные издержки обусловлены тем, что SolidWorks требователен к графической подсистеме, а, как уже было выше сказано, виртуальная графическая карта лишь сильнее нагружает процессор.

CAD SolidWorks Real w/HT hw 4/8 vm 8
Прирост от НТ −1% −9%

Активация НТ приводит к снижению производительности - для физического сервера это 1%, а для ВМ - 9%. Что, в целом, подтверждает гипотезу о фоновых процессах - поскольку 8-ядерная ВМ "захватывает" все 8 потоков ЦП, хост-ОС и ВМ начинают конкурировать за ресурсы.

Итог по группе

Издержки виртуализации в данной группе приложений весьма значительны (более 60%), причем в обоих исследованных пакетах. При этом CAD CreoElements имеет меньшие издержки, чем SolidWorks, но последний еще и умеет задействовать ресурсы графической карты, т. е. на реальной системе может получать дополнительные бонусы. Технология HT не приносит пользы на физическом сервере, а на ВМ и вовсе снижает производительность в обоих пакетах. В целом, очень высокие потери производительности не позволяют рекомендовать виртуальные системы для работы с пакетами трехмерного моделирования. Впрочем, стоит еще посмотреть на финальный рендеринг.

Финальный рендеринг трехмерных сцен

Скорость финального рендеринга трехмерных сцен зависит от производительности центрального процессора, так что здесь картина должна получиться более объективной.

Первое, на что стоит обратить внимание: при финальном рендеринге 3Ds Max показывает значительно меньшие издержки виртуализации, чем при интерактивной работе в CAD - 14% для 4-ядерной ВМ и 26% - 8-ядерной. Тем не менее, уровень издержек значительно выше установленных планок 6 и 10 процентов.

В целом, несмотря на достаточно высокие издержки, 8-ядерная ВМ имеет сопоставимый уровень производительности с 4-ядерными 4-поточными процессорами Intel, что весьма неплохо.

3Ds Max Real w/HT hw 4/8 vm 8
Прирост от НТ 26% 9%

Активация HT на реальном железе позволяет сократить время рендеринга на 26% - весьма достойный результат! Что касается НТ на ВМ, то здесь всё скромнее - всего 9% прироста. Тем не менее, прирост есть, и заметный.

Lightwave

Lightwave и вовсе показывает отличный результат: издержки виртуализации находятся на уровне 3% для 4-ядерной ВМ и 6% для 8-ядерной ВМ. Как видите, даже в одной группе приложения, предназначенные, в принципе, для одной и той же задачи, ведут себя по-разному: например, 3Ds Max показывает значительно большие издержки, чем Lightwave.

Десктопный 4770К показывает большую производительность, чем Xeon E3-1245v3. Стоит заметить, что 8-ядерная ВМ практически не уступает 4-ядерному 4-поточному физическому серверу. (Такое впечатление, что Lightwave плохо оптимизирован, поэтому меньше реагирует на любые изменения конфигурации. Что уменьшение производительности при виртуализации, что появление дополнительных ресурсов при активации НТ… на все он реагирует слабее, чем 3DsMax - С. К.).

Lightwave Real w/HT hw 4/8 vm 8
Прирост от НТ 5% 9%

Зато активация HT дает всего 5%-ую прибавку к скорости для реального железа и, что странно, 9%-ую для ВМ.

Итог

При финальном рендеринге трехмерных сцен, задействующем только ресурсы центрального процессора, издержки виртуализации вполне приемлемые, особенно у Lightwave, где потери производительности и вовсе можно охарактеризовать, как незначительные. Активация НТ и в 3Ds Max, и в Lightwave позволила повысить производительность и на физической, и на виртуальной системе.

Упаковка и распаковка

Ключевую роль в производительности архиваторов играет связка процессора и памяти. Также стоит отметить, что разные архиваторы по-разному оптимизированы, т. е. могут по-разному задействовать ресурсы процессора.

7zip pack

Издержки при сжатии данных составляют 12% для любой системы.

Xeon E3-1245v3 и i7-4770K показывают идентичные результаты - при чуть отличающейся частоте и разной памяти. Благодаря высокому приросту от активации НТ, виртуальная система с 8 ядрами обгоняет реальную с четырьмя.

7zip pack Real w/HT hw 4/8 vm 8
Прирост от НТ 25% 25%

Впрочем, прирост скорости сжатия от активации HT установился на 25% как для реального железа, так и для ВМ.

7zip unpack

В силу небольшого по объему тестового архива, результаты ВМ и реального сервера находятся на одном и том же уровне в рамках погрешности, так что реально оценить издержки не представляется возможным

Интересно, можно ли рассматривать 22% как некие “чистые” потери ВМ?

7zip unpack Real w/HT hw 4/8 vm 8
Прирост от НТ 0% 0%

Это касается и оценки эффекта от активации НТ - всё-таки объем тестового задания образца 2011 года слишком мал для современного 4-ядерного процессора.

RAR pack

У RAR издержки заметно выше, так еще и растут для 8-ядерной ВМ. В целом, 25% - все-таки многовато. Но RAR имеет довольно плохую оптимизацию в том числе под многопоточность.

Активация HT приводит к замедлению, но имея в виду посредственную реализацию многопоточности в WinRAR 4.0 это не удивительно.

RAR pack Real w/HT hw 4/8 vm 8
Прирост от НТ −2% −11%

Из-за значительных потерь от активации НТ 8-ядерная ВМ оказывается даже медленнее 4-ядерной.

RAR unpack

Поскольку тестовый архив Методики для современного процессора мал, время выполнения задания слишком мало, чтобы говорить о какой-либо точности. Тем не менее, можно точно сказать, что издержки относительно высоки.

Как видно, разница в процентах внушительная, а в реальности - всего лишь несколько секунд.

RAR unpack Real w/HT hw 4/8 vm 8
Прирост от НТ 0% −5%

Также можно точно сказать, что WinRAR плохо переваривает HT.

Итог

Производительность и издержки в этой группе очень сильно зависят от архиватора, от его оптимизации и способности эффективно использовать доступные ресурсы процессора. Поэтому и сложно давать рекомендации по поводу использования в ВМ - это в большей степени зависит от приложения, а не от типа задач. Тем не менее, 7zip демонстрирует, что уровень издержек при упаковке может быть относительно небольшим, и использовать этот архиватор в виртуальных машинах вполне можно.

Кодирование аудио

Эта группа объединяет в себе несколько аудиокодеков, работающих через оболочку dBpoweramp. Скорость кодирования аудио зависит от производительности процессора и от количества ядер. Этот тест также очень хорошо масштабируется на большее количество ядер, так как многопоточность в приложении реализована путем параллельного запуска кодирования нескольких файлов. Поскольку кодирование с помощью разных кодеков создает практически одинаковую нагрузку на систему и, соответственно, показывает близкие результаты, то мы решили свести все результаты в одну общую таблицу.

Итак, общие издержки виртуализации.

Кодирование аудио - вот идеал с точки зрения издержек виртуализации. Для 4-ядерной ВМ средние издержки составили всего 4%, а для 8-ядерной - 6%.

Real wo/HT VM 4 core wo/HT VM 4 core w/HT Real w/HT VM 8 core 4770K
Apple Результаты 295 283 281 386 362 386
Apple Рейтинг производительности 100 96 95 131 123 131
FLAC Результаты 404 387 383 543 508 551
FLAC Рейтинг производительности 100 96 95 134 126 136
Monkey Audio Результаты 299 288 282 369 348 373
Monkey Audio Рейтинг производительности 100 96 94 123 116 125
MP3 Результаты 185 178 175 243 230 249
MP3 Рейтинг производительности 100 96 95 131 124 135
Nero AAC Результаты 170 163 161 229 212 234
Nero AAC Рейтинг производительности 100 96 95 135 125 138
OGG Vorbis Результаты 128 124 123 167 159 171
Nero AAC Рейтинг производительности 100 97 96 130 124 134

Как видите, хотя реальные результаты для разных кодеков отличаются, но если брать проценты, то они удивительно похожи. Core i7-4770k часто оказывается чуть быстрее (видимо, роль играет более высокая частота). Также интересно отметить, что результаты теста 4-ядерной ВМ на системе с активированным НТ всегда чуть ниже, чем без него. Вероятно, это следствие как раз работы НТ. Но в целом, разница в производительности в 3-5% между реальной и виртуальной системой - это очень хороший показатель.

Отдельно посмотрим, что добавляет активация НТ.

Кодирование аудио Real w/HT hw 4/8 vm 8
Apple 31% 28%
FLAC 34% 31%
Monkey Audio 23% 21%
MP3 31% 29%
Nero AAC 35% 30%
OGG Vorbis 30% 28%

Активация технологии HT позволяет увеличить скорость на 31% на реальном сервере и на 28% на виртуальном. Также один из лучших результатов. Наконец, сводная таблица результатов.

Компиляция

Скорость компиляции также зависит не только от частоты и производительности ядра, но и от их количества.

Производительность серверного Xeon сопоставима с десктопным i7. 8-ядерная ВМ не дотягивает до физической системы с отключенным НТ.

GCC Real w/HT hw 4/8 vm 8
Прирост от НТ 24% 7%

Ощутимый прирост производительности происходит при активации НТ на физическом сервере - 24%, а вот на ВМ увеличение количества ядер позволяет поднять производительность лишь на 7%. Хотя и это тоже неплохо.

Компилятор Intel демонстрирует несколько большее падение производительности при виртуализации, чем GCC - 19% и 33% для 4-ядерной и 8-ядерной ВМ соответственно.

Производительность Xeon сопоставима с i7, а производительность 8-ядерной ВМ - с Xeon wo/HT. И заодно видно, какой внушительный прирост дает активация НТ. Все-таки продукт Intel, так что в том, что его постарались унифицировать под НТ, нет ничего странного. В цифрах это выглядит вот так:

Можно оценить и разницу во времени, которое потребовалось для выполнения задания. Так тоже вполне наглядно.

MSVC Real w/HT hw 4/8 vm 8
Прирост от НТ 29% −26%

Что касается НТ, то ее активация на реальной системе позволяет поднять скорость аж на 29%, тогда как в виртуальной системе наблюдается примерно такое же снижение производительности. Стоит также заметить, что асимметричная конфигурация ВМ с 4 ядрами на 8-поточном процессоре показывает меньшие издержки, чем симметричная, однако на 8-ядерной ВМ виден внушительный рост издержек.

В общем, этот компилятор на ВМ работает со слишком большими потерями производительности.

Итого

GCC демонстрирует приемлемый уровень издержек, ICC - побольше, но с ними еще можно мириться. Компилятор от Microsoft на виртуальных системах работает очень медленно. Зато все участники этой группы демонстрируют хороший прирост производительности при активациии НТ - кроме MSVC в виртуальной системе.

Математические и инженерные расчеты

За исключением MATLAB, данная группа тестов не имеет как таковых многопоточных оптимизаций.

Математические и инженерные расчеты в Maple показывают вполне приемлемый уровень издержек - 11%.

8-ядерная ВМ чуть медленнее, чем четырехядерные. Но в целом результаты виртуальных систем неплохие.

В отличие от предыдущего сценария, 8-ядерная ВМ заметно отстает от 4-хядерных вариантов. Кстати, и 4770к тут медленнее, чем Xeon. Ну и видно, что с активацией НТ все не очень хорошо.

Причем все варианты ВМ показывают схожую производительность, хотя 8-ядерный вариант чуть позади.

Солидная производительность Core i7-4770k объясняется присутствием внешней графической карты.

SolidWorks (CPU) Real w/HT hw 4/8 vm 8
Прирост от НТ 0% −5%

На физический сервере SolidWorks никак не реагирует на активацию НТ, а на ВМ реакция есть, но негативная - 5%-ое снижение производительности.

Итого

Уровень издержек в данной группе зависит от используемого приложения: минимальные у Maple, максимальные у CreoElements. В целом, математические расчеты можно с оговорками рекомендовать к виртуализации.

Растровая графика

В силу слабой оптимизации или по другим причинам, но потери производительности в виртуальных системах у ACDSee огромны.

С такой разницей во времени выполнения тестовых сценариев рекомендовать это приложение для использования на виртуальной машине не поднимется рука.

Взгляд не реальные цифры времени выполнения тоже навевает грусть.

Ну и результаты включения Hyperthreading:

Результаты виртуальных систем неплохие, только не стоит использовать 8-ядерную конфигурацию. Что интересно, 4770К и система с НТ немного отстают от референсной системы, т. е. активация НТ ухудшает ситуацию.

Работать в виртуальной системе более-менее можно, если она 4-хядерная.

Photoshop Real w/HT hw 4/8 vm 8
Прирост от НТ 1% −16%

Активация НТ практически не приносит дивидендов на реальной системе, а производительность ВМ ухудшает аж на 16%.

Итого

Стоит оговориться, что в большинстве приложений речь идет о пакетной обработке файлов. Т. к. время обработки одного файла относительно невелико, существенная часть времени тратится на операции чтения/записи, которые в случае виртуальной системы создают дополнительную нагрузку на процессор и приводят к дополнительным потерям времени (Виртуальный жесткий диск представляет собой образ, хранящийся на физическом жестком диске - а это еще один посредник непосредственно между приложением и железом).

Что же до выводов, то практически все приложения для работы с растровой графикой плохо реагируют на активацию НТ в виртуальных машинах, а ее активация на реальной системе проходит незамеченной. Производительность на 4-хядерной ВМ зависит от приложения: у двух из четырех приложений издержки активации относительно невысоки, и использовать эти приложения в ВМ можно. А вот задавать 8 ядер в настройках не стоит - вместо роста производительности получите существенное ее ухудшение. В целом же, программы для обработки изображений придется пробовать, чтобы индивидуально оценить производительность и ее падение в ВМ. Уровень издержек при переходе на виртуальную платформу для протестированных приложений нам кажется высоковатым.

Векторная графика

Данная группа является однопоточной, поэтому производительность будет зависеть только от производительности единичного ядра.

Illustrator

Примерно та же ситуация, что и в предыдущей группе - более-менее приемлемые издержки для 4-ядерных ВМ и большие потери производительности для 8-ядерной ВМ,

Производительность E3-1245v3 сопоставима с 4770K - хотя последний несколько быстрее за счет 100 дополнительных мегагерц. Что же до общей картины… Падение в процентах выглядит не особо страшным, но в реальности может вылиться в заметные дополнительные потери времени.

Illustrator Real w/HT hw 4/8 vm 8
Прирост от НТ 0% −12%

И та же ситуация с НТ - никакого прироста от активации на реальной системе, заметное падение производительности на виртуальной. Впрочем, причину мы уже описали выше.

Кодирование видео

Нужно учитывать, что первые три участника - это полноценные графические пакеты, т. е. речь идет об интерактивной работе и последющем создании ролика. Тогда как остальные участники - это просто кодировщики.

Expression

С кодированием видео в Expression дело обстоит не очень хорошо - даже на 4-ядерных системах потери производительности под 20%, а у 8-ядерной - практически на треть.

Как видите, мощные процессоры с включенным НТ отстают от версии без него.

Ну и посмотрим, что дает НТ.

Что интересно, в этом пакете Core i7-4770k показывает заметно более высокую производительность, чем на нашей тестовой системе.

Vegas Pro Real w/HT hw 4/8 vm 8
Прирост от НТ 0% −16%

Активация НТ не приносит никаких дивидендов на реальной системе, а на виртуальной показывает 16%-ое снижение производительности.

В общем, Vegas Pro, похоже, существенно менее оптимизирован под работу с современными процессорами и тратит их ресурсы неэффективно. Поэтому Premiere выглядит гораздо симпатичнее с точки зрения перспектив работы в виртуальной среде.

Ну а теперь давайте посмотрим, как ведут себя чистые кодировщики видео.

Итак, х264 демонстрирует в целом терпимые издержки, причем, в кои-то веки 8-ядерная ВМ эффективнее 4-хядерных.

Производительность 8-ядерной ВМ всего лишь на 9% ниже, чем Xeon wo/HT.

Цифры, что называется, говорят сами за себя.

xvid Real w/HT hw 4/8 vm 8
Прирост от НТ −4% −34%

Увы, активация НТ приносит лишь вред. И если на физическом сервере потери незначительны - 4%, то на ВМ они достигают 34%. То есть, и Xvid и ВМ неэффективно оперируют логическими ядрами.

Итого

Итак, у видеоредакторов уровень потерь производительности зависит прежде всего от самого редактора, поэтому пригодность для работы в ВМ стоит оценивать индивидуально. В наших тестах (и для используемых нами версий продуктов) существенно лучше выступил Premiere.

Что же до кодировщиков, то хотя разница между ними есть, но в 4-хядерных ВМ они все показывают довольно неплохие результаты. Что же до использования 8-ядерных виртуальных машин, то тут можно получить как рост, так и серьезное падение производительности. Другой вопрос, что при принятии решения о запуске перекодирования видео на виртуальной машине надо всегда помнить, что современные процессоры и графика обладают широким спектром оптимизаций под этот класс задач (так же, как и ПО), а в ВМ Oracle Virtual Box работа будет осуществляться в программном режиме, т. е. и медленнее, и с большей загрузкой процессора.

Офисное ПО

Chrome в тесте вел себя не совсем адекватно, поэтому относиться к результатам стоит с большой долей скепсиса.

И результаты от активации НТ.

Chrome Real w/HT hw 4/8 vm 8
Прирост от НТ 68% −8%

К данному подтесту в группе не стоит относится серьезно в силу этих обстоятельств.

MS Excel показывает издержки на уровне 15% и 21% для 4-ядерной и 8-ядерной ВМ. В принципе, уровень издержек можно назвать высоким. Хотя на практике пользователь вряд ли будет замечать замедление работы, разве что в каких-то очень сложных расчетах. У 8-ядерной системы издержки традиционно выше.

Тестовое задание для Excel занимает много времени, что позволяет наглядно продемонстрировать разницу во времени на его выполнение. Как видите, виртуальная система будет выполнять его на 2 минуты дольше.

И отдельно издержки от НТ:

За счет высокой эффективности НТ, 8-ядерной ВМ удается опередить физический сервер на базе Xeon wo/HT. Что интересно, 4770К показывает заметно более высокий результат.Посмотреть таблицу с результатами

VM 4 core w/HT Real w/HT VM 8 core 4770K Результаты 0:44 0:49 0:49 0:44 0:51 0:43 Рейтинг производительности 100 90 90 100 86 102

В силу небольшого времени выполнения тестового пакета, а следовательно, высокой погрешности, судить об эффективности НТ сложно.

Активация НТ приводит к 14%-му снижению производительности на ВМ.

Итого

Самое главное, что стоит иметь ввиду - в большинстве случаев производительности современных систем будет хватать для всех офисных задач, скорее всего даже с запасом. А раз уровень производительности достаточный, то пользователя не будет интересовать, какие там издержки.

Java

Данный тестовый пакет интересен тем, что Java по сути является виртуальной машиной, а, следовательно, запуск Java на Oracle VM VirtualBox означает запуск виртуальной машины на виртуальной машине, что подразумевает двойное абстрагирование от аппаратного обеспечения. Именно поэтому стоит ожидать адекватных издержек - все основные потери производительности произошли на уровне переноса программного кода на Java.

Издержки 8-ядерной ВМ установились на 8%, а 4-ядерной - 5%.

За счет высокой эффективности НТ и невысоких издержек 8-ядерная ВМ показывает на 6% большую производительность, чем Xeon wo/HT. Прирост от НТ на реальном железе составил 16%, а на ВМ - 12%.

Java Real w/HT hw 4/8 vm 8
Прирост от НТ 15% 12%

Смотря на результаты Java, можно предположить, что виртуализация различных фреймворков и программ, написанных на языках программирования с трансляцией в свой байт-код, не будет иметь высоких издержек, так как все основные издержки "заложены" в них самих. То есть, повсеместное использование языков программирования с псевдокодом не такое уж и плохое явление, особенно для виртуальных машин.

Воспроизведение видео

Этот раздел следует рассматривать просто как иллюстрацию - т. к. на реальных системах используется DXVA, т. е. аппаратное ускорение - соответственно, нагрузка на процессор минимальна. В отличие от ситуации с ВМ, где все расчеты производятся программно. В итоговый балл он также не включен.

Напомню, здесь значение таблиц - это уровень загрузки процессора. Почему он бывает больше 100% - можно почитать в методике.

MPCHC (DXVA)

Это хорошая иллюстрация эффективности средств аппаратного ускорения, и при воспроизведении видео все очевидно. Но стоит помнить, что на современных системах примерно тех же результатов можно достичь и с помощью других оптимизаций - того же Qsync для работы с видео, СUDA для графических расчетов и т. д.

MPCHC (software)

А вот в софтверном режиме разница между физическим сервером и виртуальным невелика - 4%. Де-факто, издержки производительности незначительны.

VLC (DXVA)

Что интересно, в VLC загрузка процессора для ВМ существенно ниже, чем в MPC HC.

VLC (software)

В софт-режиме разницы между реальным железом и ВМ снова практически нет. Активация DXVA в виртуальной системе приводит лишь к дополнительной работе для процессора.

Многозадачное окружение

Издержки в многозадачном окружении составили 32% и 25% для 8-ядерной и 4-ядерной ВМ соответственно. 4-ядерная ВМ очень сильно провалилась, там издержки аж 67%. Почему такое происходит - сложно сказать (напомню, речь идет о стабильном результате при нескольких запусках).

И что происходит при активации НТ

Multitasking Real w/HT hw 4/8 vm 8
Прирост от НТ 14% 3%

Технология НТ в многозадачном окружении приносит свои плоды для реальной системы - 14% прироста, а вот ВМ всё значительно хуже - 3%.

Тестирование многозадачности - довольно тонкий процесс, на который влияет множество факторов. Поэтому делать однозначные выводы со сторпроцентной уверенностью сложно. Например, чем можно объяснить громадное падение производительности четырехядерной ВМ при активации НТ? Какими-то специфическими особенностями взаимодействия хост-ОС и ВМ? Или используемые в тесте приложения сильно теряют в производительности (а примеры выше мы видели) и в совокупности дают такой результат? Кстати, если последнее утверждение верно, то это хорошо показывает, что совокупные издержки от использования ВМ могут оказаться очень высокими.

Наконец, обратите внимание на производительность Core i7-4770k, который в этом тесте очень сильно отстал от нашего тестового стенда, хотя в отдельных задачах никаких провалов не допускал. В чем тут дело? Вероятно, причина падения производительности - своп из-за недостатка оперативной памяти, который проявляется только при запуске нескольких «тяжелых» приложений одновременно. Впрочем, не будем исключать и другие причины.

Средний балл

Это, конечно, средняя температура по больнице, но все же…

Среднеарифметические издержки виртуализации по всем тестам составили 17% и 24% для 4-ядерной и 8-ядерной ВМ соответственно.

Прирост от НТ составил 12% для физического сервера и 0% для ВМ.

И на этой мажорной ноте давайте переходить к выводам.

Выводы

На мой взгляд (С. К.) анализировать производительность и потери производительности для отдельных групп или приложений не стоит: в мире ПО все слишком изменчиво. Но можно отметить определенные тенденции.

Вывод первый: Hyperthreading не всегда помогает даже на реальной системе - иногда его активация приводит к некоторому снижению производительности. С виртуальными системами ситуация еще сложнее: 8-ядерная ВМ зачастую проигрывает по производительности 4-ядерной. Т. е. использовать связку «4 ядра + НТ на реальном процессоре» и 8-ядерная ВМ можно лишь для тех задач, где вы точно знаете, что результат такого решения будет в плюс, а не в минус. Впрочем, тут нужно помнить, что задача НТ была именно в том, чтобы улучшить производительность в многозадачном окружении и (как и у ВМ), стабилизировать нагрузку на процессор. Поэтому система в целом от активации НТ должна выигрывать всегда - особенно серверная.

Вывод второй: издержки при переходе на виртуальную машину зависят скорее не от типа задач, а от конкретного приложения. Более того, и эффективность использования того или иного приложения в виртуальной машине (ВМ), видимо, определяется тем, насколько его алгоритмы «ложатся» на особенности ВМ. Например, мы не можем точно определить, является ли большое падение производительности при работе с изображениями в ВМ следствием того, что этот класс задач вообще плохо «виртуализируется», или следствием того, что существующие приложения просто используют устаревшие алгоритмы, которые не оптимизируются, потому что на современных быстрых процессорах все и так хорошо работает.

Причем у меня есть серьезные подозрения, что этот тезис можно отнести ко всем приложениям, где издержки высоки - просто эти приложения плохо оптимизированы. Т. е. они и ресурсы реальных систем используют неэффективно, просто высокий уровень производительности современных процессоров позволяет не забивать себе этим голову. Этот тезис можно отнести к профессиональным приложениям для работы с трехмерной графикой, научным расчетам и некоторым другим отдельным приложениям.

В каких-то группах виртуализация дает относительно небольшие издержки - в первую очередь в глаза бросаются аудио- и видеокодирование. Как правило, речь идет о простой и стабильной нагрузке, связанной именно с вычислениями. Это подводит нас к следующему выводу.

Вывод третий: Сейчас основные проблемы у виртуальных машины начинаются тогда, когда реальная система может задействовать аппаратные оптимизации. В распоряжении реальной системы много разных технологий оптимизации: DXVA, OpenCL, QSync и других - которые позволяют снять нагрузку с центрального процессора и ускорить выполнение задачи. В виртуальной системе Virtual Box таких возможностей нет. Впрочем, набор инструкций VT-d позволяет пробрасывать PCI-устройства в виртуальную среду. Например, я (С. К.) видел профессиональное решение НР с видеоадаптерами Nvidia Grid 2, вычислительные ресурсы которых могут виртуализироваться. В общем, ситуация зависит от самой виртуальной машины, устройств, драйверов, систем и пр. Поэтому к этому вопросу мы еще обязательно вернемся.

Наконец, пару слов стоит сказать вот о какой вещи (хотя основные выводы мы прибережем до конца всех тестирований). Стоит ли высчитывать процент падения производительности, и на его основе решать, какие задачи подлежат виртуализации, а какие нет? Например, 20-процентное падение скорости работы - это много или мало?

С. К. На мой взгляд, так ставить вопрос не стоит и вот почему.Принятие решения о том, использовать или нет виртуальные системы, лежит в области организации бизнеса, а не в области технических аспектов. А плюсы с точки зрения бизнеса могут перевесить даже 50%-ное падение производительности. Но даже если посмотреть на отдельные и вроде бы ресурсоемкие задачи, то все не так очевидно. Например, перекодировка видеоролика или расчет трехмерной модели идет 30 минут, а на виртуальной - за 50. Казалось бы, вывод очевиден - использование реальной системы оптимальнее! Однако если сцена считается на рабочей станции пользователя, то это время он не может работать. А если ее можно сбросить на сервер и заниматься следующей (причем ее подготовка займет гарантированно больше 50 минут), то в целом эффективность работы вырастет. А если еще на сервере обсчитывается несколько сцен - пусть даже подряд и медленно - то все равно с точки зрения бизнеса (и при должном распраллеливании задач) выигрыш очевиден.

С. И. С другой стороны, очень часто сервер подбирается под определенный уровень производительности в целом или в определенных приложениях, и при этом в условиях очень ограниченного бюджета. Т. е. взять вариант помощнее и подороже «про запас» не получится. В этих условиях переход на виртуальную системы (и выбор ПО с высокими издержками) может привести к тому, что в результате сервер просто не будет справляться с высокими нагрузками и с возложенными на него задачами.

На этом мы завершаем это исследование производительности виртуальной системы с ОС Windows и Oracle VM VirtualBox. В следующем материале мы рассмотрим, насколько изменится производительность Windows 7 в ВМ, если в качестве хост-ОС выступает Linux.