Довольно популярен совет : "для максимальной производительности сети виртуалок в VirtualBox используйте сетевой контроллер VirtIO и драйвера для него".
Вообще говоря, если вам нужна высокая производительность, виртуализация в VirtualBox - явно не лучший выбор, любая специализированная виртуализация на уровне ядра ОС будет лучше, но.. случаи бывают разные, иногда и от десктопной виртуалки нужна приличная скорость сетевого обмена.
Проверим, как хорошо виртуалки в VirtualBox (свежий 4.3.6, win x64) на десктопе шевелятся, запиcывая большой файл локально по фтп с хоста на виртуалку. ftp сервер и клиент сам по себе гигабит прокачивают без проблем, в производительность дисков это также не упирается, диски запросто дают больше.
Виртуалки с CentOS6 , OEL 6 (ядра от RHEL6, UEK2 (3.0.x-based), UEK3 (3.8.13-based)), RHEL7beta.
ФС ext4, ext4+LVM (разница с вариантом без LVM очень небольшая), xfs (RHEL7beta).
Итак, выставил везде в ВиртБоксе сетевуху VirtIO, как самую быструю по советам с форума... самое свежее uek3 ядро от Оракла - 25-27 Мб/c, в пиках до 30, ядро от RHEL - 43-45, предыдущее uek ядро от Оракла ~ 41 Мб/c. rhel7 beta - провальные 15-17.
Обратно выставляем эмуляцию intel desktop card MT1000, на Оракл-ядре uek3 - 45 Мб/с (а было 27), ядро от RHEL - 43.
Эмуляция intel server card MT1000 - ядро от RHEL - 42, оракловое uek3 ~ 51, rhe7beta +эмуляция intel server card MT1000 - 82-89 Мб/c (!) правда, другая ФС (xfs) внутри виртуалки).
Потребление процессора приличное во всех случаях, задачи точно его измерить у меня не было, да и , скажем прямо, КПД VBox, и любой другой десктоп-системы, всегда будет ниже гипервизора на уровне ядра.
Проще говоря, эмуляция intel desktop/server card MT1000 с драйвером из ядра rhel7b даёт бОльшую пропускную способность, чем VBox' реализация virtIO + драйвер для него из 7ки, причем разница огромна. Для ораклового uek3 картина похожая, но разница намного меньше (но +70% тоже на дороге не валяются).
Для RHEL6 kernel разница минимальна.
Вывод : для VirtualBox надо подбирать эмуляцию сетевой под конкретный дистрибутив, точнее, под установленное ядро линукса.
Совет "ставьте virtIO везде в VirtualBox" - плохой.
(С оговорками он применим в случае гипервизора KVM, и то не всегда.)
Вообще говоря, если вам нужна высокая производительность, виртуализация в VirtualBox - явно не лучший выбор, любая специализированная виртуализация на уровне ядра ОС будет лучше, но.. случаи бывают разные, иногда и от десктопной виртуалки нужна приличная скорость сетевого обмена.
Проверим, как хорошо виртуалки в VirtualBox (свежий 4.3.6, win x64) на десктопе шевелятся, запиcывая большой файл локально по фтп с хоста на виртуалку. ftp сервер и клиент сам по себе гигабит прокачивают без проблем, в производительность дисков это также не упирается, диски запросто дают больше.
Виртуалки с CentOS6 , OEL 6 (ядра от RHEL6, UEK2 (3.0.x-based), UEK3 (3.8.13-based)), RHEL7beta.
ФС ext4, ext4+LVM (разница с вариантом без LVM очень небольшая), xfs (RHEL7beta).
Итак, выставил везде в ВиртБоксе сетевуху VirtIO, как самую быструю по советам с форума... самое свежее uek3 ядро от Оракла - 25-27 Мб/c, в пиках до 30, ядро от RHEL - 43-45, предыдущее uek ядро от Оракла ~ 41 Мб/c. rhel7 beta - провальные 15-17.
Обратно выставляем эмуляцию intel desktop card MT1000, на Оракл-ядре uek3 - 45 Мб/с (а было 27), ядро от RHEL - 43.
Эмуляция intel server card MT1000 - ядро от RHEL - 42, оракловое uek3 ~ 51, rhe7beta +эмуляция intel server card MT1000 - 82-89 Мб/c (!) правда, другая ФС (xfs) внутри виртуалки).
Потребление процессора приличное во всех случаях, задачи точно его измерить у меня не было, да и , скажем прямо, КПД VBox, и любой другой десктоп-системы, всегда будет ниже гипервизора на уровне ядра.
Проще говоря, эмуляция intel desktop/server card MT1000 с драйвером из ядра rhel7b даёт бОльшую пропускную способность, чем VBox' реализация virtIO + драйвер для него из 7ки, причем разница огромна. Для ораклового uek3 картина похожая, но разница намного меньше (но +70% тоже на дороге не валяются).
Для RHEL6 kernel разница минимальна.
Вывод : для VirtualBox надо подбирать эмуляцию сетевой под конкретный дистрибутив, точнее, под установленное ядро линукса.
Совет "ставьте virtIO везде в VirtualBox" - плохой.
(С оговорками он применим в случае гипервизора KVM, и то не всегда.)