3 июл. 2011 г.

Паравиртуальная сеть (virtio-net)

В VirtualBox версии 3.1 появился новый тип сетевого адаптера virtio-net. В отличии от других устройств, VirtualBox не виртуализирует это сетевое оборудование. Вместо этого, эмуляция сетевого устройства будет обеспечиваться специальным драйвером "virtio" в гостевой системе. Это позволяет уменьшить накладные расходы на виртуализацию и увеличить производительность сетевого ввода/вывода. Этот драйвер является частью проекта с открытым исходным кодом KVM.

Драйвер "virtio" доступен для гостевых систем:
  • Linux с ядром 2.6.25 и выше. Также многие дистрибутивы бэкпортировали(back-ported) этот драйвер для более старых ядер.
  • Для Windows 2000, XP and Vista, virtio драйвер может быть скачен с сайта проекта KVM.

Установка virtio драйвера в windows госте:
Скачайте ISO образ с паравиртуальными драйверами, подключите его к вашей виртуальной машине и установите соответствующий тип сетевого устройства

Запустите ВМ и установите драйвера с диска для этого устройства. Для увеличения производительности устройства рекомендуется внести следующие изменения в реестр windows гостя :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters]

"DefaultSendWindow"=dword:00100000

"DefaultReceiveWindow"=dword:00100000

"FastSendDatagramThreshold"=dword:00004000


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

"Tcp1323Opts"=dword:00000001

"TcpWindowSize"=dword:00100000

После внесения изменений перегрузите ВМ.
Для тестирования производительности сетевых устройств можно использовать утилиту командной строки iperf. Версию для windows можно скачать здесь. Пользоваться утилитой просто: на госте(это сервер) набираете в командной строке:
iperf -s

а на хосте, или в другом госте:
iperf -c < IP адрес >

У меня на домашнем ПК до тюнинга было от 700 Мбит/с до 1,2Гбит/с, а после стало от 1 до 1,47 Гбит/с. Прочие же виртуальные сетевые устройства выдавали не более 800 Мбит/с.
Замечание
Если ваш хост подключен к сети на скорости 100Мбит/с такие скорости вы вряд ли получите. На работе мне на windows хосте этого сделать пока не удалось. Может кто знает как это сделать?

UPDATE
Описание настроек TCP/IP для Windows начиная с Windows
http://www.linux-kvm.org/page/WindowsGuestDrivers/kvmnet/registry#Starting_from_Vista

PS Написал пост уже давно, но забыл опубликовать :)

Комментариев нет:

Архив блога