Главная Архив Сайты Комменты Канал ВКонтакт Группа ВК Instagram Карта
Велосипедное Компьютерное Фототема Троицк Разное
Категория: Компьютерное
бновлено: 11.09.2015

Выбор интерфейса паравиртуализации в Virtualbox для максимальной производительности

Введение

Здравствуйте, уважаемые посетители. Не так давно вышла новая версия Oracle VM VirtualBox, где добавили возможность выбора интерфейса паравиртуализации для виртуальной машины. Данная функция преподносится как возможность повышения производительности гостевой операционной системы. Меня этот момент очень сильно заинтересовал. В особенности заинтересовало то, как сказывается на работе гостевой ОС выбор разных интерфейсов, а также то, какой именно интерфейс паравиртуализации нужно выбирать для обеспечения максимального быстродействия гостевой операционной системы Windows 7 x64.

Операционные системы Windows, начиная с Windows 7, поддерживают интерфейс Microsoft — Hyper-V, так что вполне логично, что для работы гостевой ОС Windows 7 x64 нужно выбирать именно его. Тем не менее, мне захотелось узнать, как будет влиять на производительность гостевой ОС каждый из доступных в VirtualBox интерфейсов паравиртуализации. Я начал искать в интернете информацию на эту тему, однако не нашёл нужных мне результатов, поэтому решил провести тестирование самостоятельно, о результатах которого и пойдёт речь в этом посте.

На данный момент, для виртуальной машины можно выбрать один из доступных интерфейсов: совместимый, минимальный, Hyper-v, KVM или же отключить его вовсе:

Интерфейсы паравиртуализации, доступные для выбора в Oracle VM VirtualBox

В справке к VirtualBox указано, что большинство современных ОС Windows и ОС на базе ядра Linux поддерживают один или несколько интерфейсов паравиртуализации и как правило, для использования паравиртуализации не требуется дополнительное программное обеспечение (включая в том числе и дополнение для гостевых ОС VirtualBox Guest Additions). Помимо этого, в справке можно найти краткое описание интерфейсов. Минимальный указывается как необходимый для операционных систем Mac OS X. KVM — рекомендуется для гостевых ОС на базе ядра Linux. Hyper-V — поддерживается операционными системами Microsoft, начиная с Windows 7, соответственно для них и рекомендуется его использовать, а также для ОС FreeBSD.

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

В качестве операционной системы хоста использовалась Windows 7 x64, эта же версия использовалась в качестве гостевой ОС. Версия VirtualBox — последняя на момент написания поста — 5.0.2. Для тестирования мною была создана отдельная виртуальная машина со следующими настройками:

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

Как видите, я выделил виртуальной машине 2000 МБ памяти из имеющихся 4 ГБ и все четыре процессорных ядра. Помимо этого, включил 2D и 3D ускорение видео, всё для того, чтобы гостевая ОС Windows 7 x64 чувствовала себя как можно лучше.

Для измерения производительности использовались следующие программы: Intel linpack x64, тест производительности, встроенный в программу 7-zip x64, AIDA64 — тест быстродействия оперативной памяти, Xvid4PSP — кодек x264 64-bit.

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

Результаты тестирования

Intel linpack x64

Первый выполнявшийся тест — бенчмарк Intel linpack x64. В настройках бенчмарка был указан объём теста 10000 уравнений, тест запускался пятикратно, на графике отображён усреднённый результат пяти тестов (Average) и максимальный (Maximal) зафиксированный результат в GFlops:

Результаты тестирования Intel linpack x64

Как видим, между хостом и гостевыми ОС наблюдается значительный разрыв в производительности. Наилучший результат показал интерфейс паравиртуализации Hyper-V — 32,58 GFlops в среднем и 33,31 GFlops максимум, отставание производительности по сравнению с хостом составило — 10%. Однако разница между Hyper-V и остальными интерфейсами, кроме KVM, совершенно незначительная. Низкие результаты при работе ОС с интерфейсом KVM обусловлены тем, что производительность значительно падала через несколько минут после запуска ОС, несмотря на то, что в первые минуты её работы, она практически не отличалась от других интерфейсов — это можно определить по максимальному зафиксированному результату с интерфейсом KVM — 32,74 GFlops. Аналогичные провалы производительности были получены и в других тестах, при работе гостевой ОС с активированным интерфейсом KVM.

7-zip x64

Тест производительности в программе 7-zip запускался вручную пятикратно. Результаты всех пяти тестов были усреднены для большей точности:

Результаты тестирования 7-zip x64

Лучший результат опять показывает Hyper-V — 9097 MIPS. При этом разница в производительности между ним и хостом уже более существенная, чем в предыдущем тесте — 16%. Остальные интерфейсы, кроме KVM, дали результат не сильно отличающийся друг от друга.

AIDA64 — тест быстродействия оперативной памяти

Следующий тест — быстродействие оперативной памяти в программе AIDA64 уже более интересен. Тестирование выполнялось путём трёхкратного запуска бенчмарка, полученные результаты усреднены. На диаграмме отображены результаты теста по трём параметрам — чтение, запись и копирование в оперативной памяти:

Результаты тестирования AIDA64 — memory benchmark

Из результатов видно, что все интерфейсы, кроме KVM показали производительность уровня хоста. Что самое интересное, лучший результат показала ОС при работе как раз таки с отключенным интерфейсом паравиртуализации (Read, Copy), впрочем, разница соверешенно незначительна — менее трёх процентов. Примечательно, что результаты при работе ОС с интерфейсом Hyper-V получились более низкими по сравнению с отключенным интерфейсом паравиртуализации, а также совместимым и минимальным. Как бы там ни было, разница не столь существенная.

Кодирование видеофрагмента кодеком x264 64-bit

Для тестирования использовалась программа Xvid4PSP, версия 5.10.330.0_(2013-03-21)_rc33.1.Кодирование осуществлялось 64-bit версией кодека x264. Видеофрагмент для кодирования — видеозапись с цифровой камеры, закодированная кодеком MJPEG, длительность 62 секунды. Кодирование осуществлялось один раз, поскольку последующие запуски давали точно такой же результат, секунда в секунду. Результаты на диаграмме:

Результаты тестирования — кодирование видеофрагмента кодеком x264 64-bit

Кодирование видео уже более приближено к реальной работе, нежели синтетические тесты быстродействия, посему эти результаты лично для меня наиболее интересны. Быстрее всего выполнил кодирование конечно же хост, всего за 86 секунд. На втором месте по скорости — Hyper-V, кодирование выполнено за 134 секунды, что более чем в полтора раза дольше, но тем не мнее значительно быстрее, чем результаты при работе с другими интерфейсами. Для сравнения, разница в производительности между Hyper-V, совместимым и минимальным интерфейсами, составила целых 7 процентов, что уже можно назвать существенной разницей.

Результаты этих тестов подтвердили, что для работы гостевой ОС Windows 7 x64 необходимо использовать интерфейс паравиртуализации Hyper-V для достижения максимальной скорости работы. Но, вместе с тем, показали, что разница в производительности будет не всегда значительной.

На этом завершаю, спасибо за внимание!

Автор: Sandy Programmer
Дата: 11.09.2015
31870
Категория: Компьютерное

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

6 коммент. к посту “Выбор интерфейса паравиртуализации в Virtualbox для максимальной производительности

    Обзор понравился. Как раз искал на эту тему в инете. Есть вопросы взаимодействия интерфейсов Hyper-V и KVN с VirtualBox на уровне драйверов. Успеха.

    Не надейтесь 🙂
    обзор примерно такой: сравним удобство ношения воды в стакане и в сите, по всем тестам стакан выиграл :)))

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

    Так почему же? Причём вообще тут линукс. Целью тестирования было выявить, какой из интерфейсов обеспечит лучшую производительность именно для ОС Windows 7. И совершенно очевидно, что KVM, который предназначается для ОС на базе ядра Линукс, о чём кстати указано в статье, не обеспечит должной производительности. KVM вообще можно было не включать в эти тесты, но я сделал это чисто ради интереса. Как я уже сказал, целью было не столько сравнение одного интерфейса с другим, сколько выявление лучшего для работы с Windows 7. Вы же воспринимаете результаты, как попытку принизить значимость и производительность интерфейса KVM. Не надо так.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Ваш комментарий будет опубликован после автоматической проверки системой фильтрации спама и гадостей.

Автор статей и фото: Sandy Programmer Условия использования моих статей и фотографий: читать
This site uses icons made by Freepik from flaticon.com is licensed under CC BY 3.0 Also uses Fotorama from Fotorama.io