Xen против VirtualBox под большой нагрузкой?

10

Что лучше работает при интенсивном использовании процессора и памяти на виртуальных серверах, Xen или VirtualBox?

хаос
источник

Ответы:

25

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

Тем временем Xen гарантирует, что гостевая ОС будет перекомпилирована в соответствии с моделью Xen. Таким образом, управление плавно переходит от гостевой ОС к гипервизору, без необходимости притворяться, что гостевая ОС имеет прямой доступ к оборудованию.

Для ознакомления с несколькими технологиями виртуализации, включая данные тестов производительности, прочитайте этот отчет . Он говорит только о Linux, но охватывает Linux-Vserver, Xen, OpenVZ, KVM, VirtualBox и QEMU. Linux-Vserver и Xen, как правило, были лучшими исполнителями, но прочитайте отчет, чтобы увидеть различные рабочие нагрузки.

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

И, наконец, вы должны знать, что Xen будет запускать только модифицированные гостевые ОС. Он не может запустить неизмененную гостевую ОС.

Хэмиш Даунер
источник
2
Обратите внимание, что виртуальные машины на xen под управлением Windows могут использовать только одно ядро!
Thomaschaaf
29

Ответ Хэмиша Даунера ошибочен в последнем пункте. Xen может запускать немодифицированных гостей, однако они должны запускаться как гости HVM, которые полностью виртуализированы. Для этого требуется, чтобы хост-компьютер имел поддержку аппаратной виртуализации с процессорами Intel VT или AMD-V.

У Xen и Virtualbox есть свое место, но это два разных типа гипервизоров. Xen - гипервизор типа 1, где Virtualbox - гипервизор типа 2. Гипервизоры типа 1, как правило, являются тем, что вы найдете в серверных средах, где гипервизоры типа 2, как правило, более распространены для запуска нескольких ОС, с которыми вы взаимодействуете как настольные компьютеры. Я думаю, что это в основном из-за их простоты и лучшей интеграции с рабочим столом. Однако гости под гипервизором типа 2 находятся дальше от основного оборудования и, как правило, медленнее, чем гости под гипервизором типа 1. Как и во всем, всегда будет исключение из правил.

3dinfluence
источник
2
Вы совершенно правы :-) Таким образом, вы получаете +1
Антуан Бенкемун
3

Я могу говорить только о Xen, так как я когда-либо использовал Virtualbox только для виртуализации компьютера с Windows на своем рабочем столе Mac.

Как уже упоминалось, Xen (и XenServer, основанный на Xen) используют паравиртуализированные ядра, которые значительно улучшают характеристики производительности, связанные с процессором и памятью. Однако это верно только для хостов Linux со специализированными ядрами. Вам нужно ядро ​​с поддержкой Xen, чтобы воспользоваться этим.

Кроме того, Windows не поддерживает виртуализацию таким образом, но расширения Intel VT и AMD-V на их соответствующих процессорах «ловят» Windows и заставляют ее вести себя паравиртуализированным образом. Windows 2003 и Windows 2000 никогда не знают, что они работают виртуализированно, в то время как Windows 2008, с другой стороны, обнаруживает это и работает в так называемом «просвещенном» режиме, который можно сравнить с режимом «паравиртуализации» в Linux.

user1952
источник