Как исправить чрезвычайно медленную скорость загрузки сети Virtualbox?


37

Я использую виртуальную машину Ubuntu 12.04 (hashicorp / precision32) через Vagrant / Virtualbox. Кажется, скорость загрузки очень низкая по сравнению с моей хост-системой. Вот что я получаю с хост-системой (OSX) с помощью speedtest-cli:

Testing download speed........................................
Download: 845.62 Mbits/s
Testing upload speed..................................................
Upload: 296.03 Mbits/s

И вот что я получаю в гостевой ОС (Ubuntu 12.04):

Testing download speed........................................
Download: 12.41 Mbits/s
Testing upload speed..................................................
Upload: 247.64 Mbits/s

Так что скорость загрузки хоста в 70 раз выше! Обычный ответ на эти проблемы таков:

config.vm.provider "virtualbox" do |v|
  v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end

Но я уже настроил его для моего Vagrantfile.

Я также проверил это с простым Virtualbox и 12.04 (без Vagrant). Та же проблема возникает при использовании интерфейса NAT. Тем не менее, переход в мостовой режим увеличивает скорость загрузки в 20 раз. Это неприятно, поскольку Vagrant полагается, что интерфейс NAT всегда будет eth0.

Я использую OSX Mavericks в качестве хост-системы. Версия Virtualbox - 4.3.18.

Любые идеи?

Ответы:


30

Для бродячих пользователей добавьте в свой файл Vagrant следующее:

config.vm.provider "virtualbox" do |v|
  v.customize ["modifyvm", :id, "--nictype1", "virtio"]
end

Я получил повышение скорости ~ 15x. В VirtualBox GUI теперь я вижу другой тип адаптера для моего интерфейса NAT: паравиртуализированная сеть (virtio-net).


1
У меня была та же проблема: скорость загрузки образа Boot2Docker, запущенного на Vagrant, измеренная с помощью speedtest-cli, была 0 (настолько медленно, что вы не можете измерить ее?). Как только я добавил этот параметр, скорость загрузки соответствовала скорости моей операционной системы. Благодарность!
Евгений Брикман

Кто-нибудь знает, каковы все другие возможные значения? Любая ссылка на документы?
ня

Боюсь, улучшения для меня нет. Vagrant 1.7.4, Virtualbox 5.0.4
lsh

Все возможные варианты здесь: virtualbox.org/manual/ch08.html#idp46730496367936 Попробуйте, Am79C973если у вас есть проблемы с virtio.
Юлиуш Гонера

2
VBoxManage modifyvm YourMachineName --nictype1 virtio
Брайан Лоу

17

Я нашел для меня более простое решение

  • Host Ubuntu 14.04
  • гость убунту 14.04
  • Нат с переадресацией портов
  • чрезвычайно низкая скорость загрузки от гостя. Это было так медленно, что тест скорости даже не может измерить это.

Я только что перешел на адаптер PCNet-Fast III. И скорость стала для меня достаточно хорошей (40 Мб / с)


1
У меня работали с Host Ubuntu 14.04 и Guest Ubuntu 12.04.
Рос

1
Чтобы переключиться на PCNet Fast III в Vagrantfile, используйте v.customize ["modifyvm", :id, "--nictype1", "Am79C973"].
Юлиуш Гонера

Это прекрасно работает! У меня были проблемы с apt-getзависанием при попытке загрузки. В конце концов это будет работать, но замена сетевого адаптера, как указано выше, решает проблему.
Брендон Мьюр

Работал с хостом Win10 под управлением Ubuntu 16.10.
robsn

0

Ответ @ auramo полезен, но учтите, что в нем указан конкретный сетевой адаптер: # 1. Например, в моей системе у меня есть множество сетевых интерфейсов. Я должен был уточнить --nictype4.

Кроме того, другие сообщили о преимуществах в другом месте, указав natdnshostresolver#и natdnsproxy#где #номер, идентифицирующий ваш NIC. По моему это выглядит так:

config.vm.provider "virtualbox" do |v|
  v.customize ["modifyvm", :id, "--nictype4", "virtio"]
  v.customize ["modifyvm", :id, "--natdnshostresolver4", "on"]
  v.customize ["modifyvm", :id, "--natdnsproxy4", "on"]
end
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.