Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Привет, Хабр! Думаю, никто не будет отрицать, что виртуальные машины — незаменимая в хозяйстве вещь. Ведь это значительно удобнее, чем ставить множество ОС на свой компьютер. Или я вот, например, был бы и рад debian себе поставить на ноутбук рядом с macOS, да под макбуки с драйверами там большие проблемы. И вот, когда у меня сломался ПК, на котором были винда с линуксом, я собрался настраивать виртуалки у себя на ноутбуке. А так как хочется комфортно работать в виртуальной системе, то в первую очередь я обращал внимание на производительность. Самым простым способом было попробовать всё самим, что я и сделал, и вот делюсь результатами.
Для тестирования взял последние стабильные версии трёх самых популярных решений — VMware Fusion Pro 12.1.0 (17195230), Parallels Desktop 16.1.1 (49141) и Oracle VirtualBox 6.1.16 (r140961). VirtualBox бесплатный и open-source (GPL v2), Fusion и Parallels я тестировал в trial версии, потому что я бедный студент, у которого нет денег. У Fusion Pro есть 30 дней пробной версии, а у Fusion Player — бесплатная лицензия для персонального использования, для получения которой надо зарегистрироваться и немного подождать (мне выдали license key за где-то за сутки). Parallels только платный (14 дней триала), из-за чего для меня он был «вне конкурса», но есть 50% скидка для студентов.
Во всех трёх тестируется один и тот же дистрибутив Debian 10.6.0 amd64, просто потому что у меня был уже скачан iso образ, с практически одинаковыми настройками при установке (немного отличается разбиение диска), в качестве среды рабочего стола везде выбрал Xfce. В качестве бенчмарков взял первые попавшиеся для linux — sysbench (cpu, memory и io тесты) и indigo benchmark (cpu тест). Для всех виртуалок во всех системах были выставлены одинаковые настройки: 2GB оперативной памяти, 2 ядра процессора, 64MB видеопамяти. Тесты так же проведены в нативной macOS (для сравнения).
Всё тестировалось на MacBook Pro 13" 2017-го года с Core i5 на 2.3 GHz, ось — macOS Big Sur Beta (20A5364e).
Отдельное замечание по поводу VirtualBox. После установки надо в настройках безопасности подтвердить, что мы доверяем расширениям ядра от Oracle, о чём установщик, в отличие от установщиков Fusion и Parallels, не предупреждает, а лишь говорит, что нужно перезагрузиться. После перезагрузки для этого подтверждения уже надо будет переустанавливать заново VirtualBox, потому что запрос на подтверждение пропадёт из настроек macOS (почему Apple не хранит их в отдельном разделе настроек безопасности?), но мне и это не помогло, и VirtualBox заработал лишь после сброса настроек SIP (
Итак, вот результаты (полный вывод бенчмарков тут):
Как видно, в синтетических тестах CPU наши виртуалки сильно отстают от оригинальной системы (что логично), но между собой отличаются незначительно. Интересно, что во всех трёх виртуальных машинах тест памяти значительно опережает тесты в macOS. С чем это связано гадать не буду, надеюсь не с разницей в linux и macOS версиях бенчмарка. Если кто-то знает или предполагает причину, объясните мне, пожалуйста, в комментариях. Точно так же любопытно, как Fusion обогнал macOS с тестами диска, но тут я ещё потестирую, так как скорость записи хорошо влияет на производительность, и тесты диска хорошо подвержены случайным факторам.
Что касается субъективного впечатления, parallels и vmware мне показались шустрее. К тому же при установке системы в VirtualBox курсор в один прекрасный момент завис и мне пришлось доустанавливать всё с клавиатуры, после ребута виртуалки пофиксилось. А в VMware система у меня начинает подтормаживать при включённой поддержке 3D ускорения, почему так я, опять же, не знаю.
В заключение скажу, что тесты, конечно, не точные и далеко не полные. Я взял первые попавшиеся бенчмарки и не тестировал, например, GPU. Тесты делал я в первую очередь для себя за один вечер, но решил поделиться с общественностью, думаю есть те, кому пригодится. Если кто-то проведёт более полные и качественные тесты производительности — буду рад. Я же лично остановлюсь на Fusion Player, потому что он бесплатный, удобный для меня, к тому же у меня уже был приятный опыт использования VMWare Workstation на windows и не очень приятный с VirtualBox там же.
Для тестирования взял последние стабильные версии трёх самых популярных решений — VMware Fusion Pro 12.1.0 (17195230), Parallels Desktop 16.1.1 (49141) и Oracle VirtualBox 6.1.16 (r140961). VirtualBox бесплатный и open-source (GPL v2), Fusion и Parallels я тестировал в trial версии
Во всех трёх тестируется один и тот же дистрибутив Debian 10.6.0 amd64, просто потому что у меня был уже скачан iso образ, с практически одинаковыми настройками при установке (немного отличается разбиение диска), в качестве среды рабочего стола везде выбрал Xfce. В качестве бенчмарков взял первые попавшиеся для linux — sysbench (cpu, memory и io тесты) и indigo benchmark (cpu тест). Для всех виртуалок во всех системах были выставлены одинаковые настройки: 2GB оперативной памяти, 2 ядра процессора, 64MB видеопамяти. Тесты так же проведены в нативной macOS (для сравнения).
Всё тестировалось на MacBook Pro 13" 2017-го года с Core i5 на 2.3 GHz, ось — macOS Big Sur Beta (20A5364e).
Отдельное замечание по поводу VirtualBox. После установки надо в настройках безопасности подтвердить, что мы доверяем расширениям ядра от Oracle, о чём установщик, в отличие от установщиков Fusion и Parallels, не предупреждает, а лишь говорит, что нужно перезагрузиться. После перезагрузки для этого подтверждения уже надо будет переустанавливать заново VirtualBox, потому что запрос на подтверждение пропадёт из настроек macOS (почему Apple не хранит их в отдельном разделе настроек безопасности?), но мне и это не помогло, и VirtualBox заработал лишь после сброса настроек SIP (
sudo csrutil clear
). В общем, потребовалось немного танцев с бубном. Итак, вот результаты (полный вывод бенчмарков тут):
VMware Fusion | Parallels Desktop | Oracle VirtualBox | macOS (host) | |
---|---|---|---|---|
sysbench CPU (1 поток), events per second | 1.2K | 1.2K | 1.2K | 3607.9K |
sysbench CPU (2 потока), events per second | 2.4K | 2.4K | 2.4K | 6111.5K |
sysbench RAM, MiB/sec transferred | 5411.45 | 4287.38 | 4863.09 | 2658.28 |
sysbench I/O, written MiB/sec | 948.55 | 89.13 | 33.77 | 429.31 |
Indigo — Bedroom, CPU, M samples/s | 0.202 | 0.202 | 0.202 | 0.313 |
Indigo — Supercar, CPU, M samples/s | 0.514 | 0.502 | 0.496 | 0.787 |
Как видно, в синтетических тестах CPU наши виртуалки сильно отстают от оригинальной системы (что логично), но между собой отличаются незначительно. Интересно, что во всех трёх виртуальных машинах тест памяти значительно опережает тесты в macOS. С чем это связано гадать не буду, надеюсь не с разницей в linux и macOS версиях бенчмарка. Если кто-то знает или предполагает причину, объясните мне, пожалуйста, в комментариях. Точно так же любопытно, как Fusion обогнал macOS с тестами диска, но тут я ещё потестирую, так как скорость записи хорошо влияет на производительность, и тесты диска хорошо подвержены случайным факторам.
Что касается субъективного впечатления, parallels и vmware мне показались шустрее. К тому же при установке системы в VirtualBox курсор в один прекрасный момент завис и мне пришлось доустанавливать всё с клавиатуры, после ребута виртуалки пофиксилось. А в VMware система у меня начинает подтормаживать при включённой поддержке 3D ускорения, почему так я, опять же, не знаю.
В заключение скажу, что тесты, конечно, не точные и далеко не полные. Я взял первые попавшиеся бенчмарки и не тестировал, например, GPU. Тесты делал я в первую очередь для себя за один вечер, но решил поделиться с общественностью, думаю есть те, кому пригодится. Если кто-то проведёт более полные и качественные тесты производительности — буду рад. Я же лично остановлюсь на Fusion Player, потому что он бесплатный, удобный для меня, к тому же у меня уже был приятный опыт использования VMWare Workstation на windows и не очень приятный с VirtualBox там же.