Jak naprawić bardzo małą prędkość pobierania sieci Virtualbox?

37

Używam maszyny Wirtualnej Ubuntu 12.04 (hashicorp / exact32) za pośrednictwem Vagrant / Virtualbox. Wydaje się, że ma wyjątkowo małą prędkość pobierania w porównaniu do mojego systemu hosta. Oto, co otrzymuję z systemem hosta (OSX) za pomocą speedtest-cli:

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

I to właśnie otrzymuję w systemie gościa (Ubuntu 12.04):

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

Szybkość pobierania hosta jest więc 70 razy większa! Zwykła odpowiedź na te problemy jest następująca:

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

Ale już skonfigurowałem go do mojego pliku Vagrantfile.

Przetestowałem to również na zwykłym Virtualbox i 12.04 (bez Vagrant). Ten sam problem występuje, gdy korzystam z interfejsu NAT. Jednak przejście do trybu zmostkowanego powoduje, że prędkość pobierania jest 20 razy większa. Jest to paskudne, ponieważ Vagrant polega na interfejsie NAT, aby zawsze być eth0.

Używam OSX Mavericks jako systemu hosta. Wersja Virtualbox to 4.3.18.

Jakieś pomysły?

Auramo
źródło

Odpowiedzi:

30

W przypadku użytkowników włóczęgów dodaj do pliku włóczęgi:

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

Dostałem przyspieszenie ~ 15x. W interfejsie graficznym VirtualBox widzę teraz inny typ adaptera dla mojego interfejsu NAT: Paravirtualized Network (virtio-net).

Auramo
źródło
1
Miałem ten sam problem: prędkość wysyłania obrazu Boot2Docker uruchomionego na Vagrant, mierzona za pomocą speedtest-cli, wynosiła 0 (tak wolno, że nie możesz tego zmierzyć?). Gdy tylko dodałem to ustawienie, prędkość wysyłania odpowiadała szybkości mojego systemu operacyjnego. Dzięki!
Jewgienij Brikman,
Czy ktoś wie, jakie są wszystkie inne możliwe wartości? Jakiś link do dokumentów?
nha
obawiam się, że nie ma dla mnie poprawy. Vagrant 1.7.4, Virtualbox 5.0.4
lsh 22.10.15
Wszystkie możliwe opcje są tutaj: virtualbox.org/manual/ch08.html#idp46730496367936 Spróbuj Am79C973również, jeśli masz problemy virtio.
Juliusz Gonera,
2
VBoxManage modyfikujv YourMachineName --nictype1 virtio
Brian Low
17

Znalazłem dla mnie prostsze rozwiązanie

  • Host Ubuntu 14.04
  • gość ubuntu 14.04
  • Nat z przekierowaniem portów
  • bardzo niska prędkość wysyłania przez gościa. Było tak wolne, że próba prędkości nawet tego nie zmierzyła.

Właśnie przełączyłem się na adapter PCNet-Fast III. A prędkość stała się dla mnie wystarczająca (40 Mb / s)

paul_di
źródło
1
Pracował dla mnie z Host Ubuntu 14.04 i Guest Ubuntu 12.04.
Ross
1
Aby przełączyć na PCNet Fast III w Vagrantfile, użyj v.customize ["modifyvm", :id, "--nictype1", "Am79C973"].
Juliusz Gonera
To działa świetnie! apt-getPodczas próby pobrania miałem problem z zawieszeniem się. W końcu to zadziała, ale zmiana karty sieciowej jak wyżej rozwiązuje problem.
Brendon Muir,
Pracował z hostem Win10 z systemem Ubuntu 16.10.
robsn
0

Odpowiedź @ auramo jest przydatna, ale pamiętaj, że określa ona konkretną kartę sieciową: # 1. Na przykład w moim systemie mam wiele interfejsów sieciowych. Musiałem sprecyzować --nictype4.

Również inni zgłosili korzyści w innym miejscu natdnshostresolver#i natdnsproxy#gdzie #jest numer identyfikujący twoją kartę sieciową. W moim wygląda to tak:

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
Offlein
źródło