Як виправити надзвичайно повільну швидкість завантаження мережі Virtualbox?


37

Я використовую Ubuntu 12.04 VM (hashicorp / preci32) через 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 разів швидшою. Це противно, оскільки Вагрант покладається на NAT-інтерфейс завжди et0.

Я використовую OSX Mavericks в якості хост-системи. Версія віртуальної скриньки - 4.3.18.

Будь-які ідеї?

Відповіді:


30

Для бродячих користувачів додайте у файл Vagrant наступне:

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

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


1
У мене була така ж проблема: швидкість завантаження зображення Boot2Docker, що працює на Vagrant, вимірюється за допомогою speedtest-cli, була 0 (так повільно, що ви не можете його виміряти?). Як тільки я додав цей параметр, швидкість завантаження відповідала швидкості моєї хост-операційної системи. Спасибі!
Євгеній Брікман

Хтось знає, які є всі інші можливі значення? Будь-яке посилання на документи?
Nha

я не боюся поліпшення для мене. Vagrant 1.7.4, Virtualbox
5.0.4

Усі можливі варіанти тут: virtualbox.org/manual/ch08.html#idp46730496367936 Спробуйте Am79C973також, якщо у вас виникли проблеми virtio.
Юліуш Гонера

2
VBoxManage modifyvm YourMachineName --nictype1 virtio
Брайан Низький

17

Я знайшов для мене більш просте рішення

  • Хост ubuntu 14.04
  • гість ubuntu 14.04
  • Nat з переадресацією порту
  • надзвичайно повільна швидкість завантаження від гостя. Це було так повільно, що тест швидкості навіть не міг це виміряти.

Я щойно перейшов на адаптер PCNet-Fast III. І швидкість стала для мене досить хорошою (40 Мб / с)


1
Для мене працювали з Host Ubuntu 14.04 та Guest Ubuntu 12.04.
ross

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

Це чудово працює! У мене виникли проблеми з apt-getповішенням під час спроби завантаження. Врешті-решт це спрацює, але зміна мережевого адаптера, як зазначено вище, вирішує проблему.
Брендон Муїр

Працював з хостом Win10 під керуванням Ubuntu 16.10.
robsn

0

Відповідь @ auramo є корисною, але зауважте, що вона визначає конкретний NIC: №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.