Comment régler la vitesse extrêmement lente de téléchargement du réseau Virtualbox?

37

J'utilise une machine virtuelle Ubuntu 12.04 (hashicorp / precise32) via Vagrant / Virtualbox. Il semble que sa vitesse de téléchargement soit extrêmement lente comparée à celle de mon système hôte. Voici ce que je reçois avec le système hôte (OSX) avec speedtest-cli:

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

Et voici ce que je reçois dans l'OS invité (Ubuntu 12.04):

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

La vitesse de téléchargement de l'hôte est donc 70 fois plus rapide! La réponse habituelle à ces problèmes est la suivante:

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

Mais je l'ai déjà configuré sur mon Vagrantfile.

J'ai aussi testé cela avec plain Virtualbox et 12.04 (sans vagabond). Le même problème se produit lorsque j'utilise l'interface NAT. Cependant, le passage en mode ponté accélère la vitesse de téléchargement de 20 fois. C'est méchant, car Vagrant s'appuie sur l'interface NAT pour être toujours eth0.

J'utilise OSX Mavericks en tant que système hôte. La version de Virtualbox est 4.3.18.

Des idées?

auramo
la source

Réponses:

30

Pour les utilisateurs vagabonds, ajoutez ce qui suit à votre fichier Vagrant:

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

J'ai un gain de vitesse de ~ 15x. Sur l'interface graphique de VirtualBox, je vois maintenant un type d'adaptateur différent pour mon interface NAT: réseau paravirtualisé (virtio-net).

auramo
la source
1
J'avais le même problème: la vitesse de téléchargement sur une image Boot2Docker s'exécutant sur Vagrant, telle que mesurée à l'aide de speedtest-cli, était de 0 (si lent que vous ne pouvez pas le mesurer?). Dès que j'ai ajouté ce paramètre, la vitesse de téléchargement correspondait à la vitesse de mon système d'exploitation hôte. Merci!
Yevgeniy Brikman
Est-ce que quelqu'un sait quelles sont toutes les autres valeurs possibles? Un lien vers la documentation?
nha
aucune amélioration pour moi j'ai peur. Vagrant 1.7.4, Virtualbox 5.0.4
mercredi
Toutes les options possibles sont ici: virtualbox.org/manual/ch08.html#idp46730496367936 Essayez Am79C973aussi si vous avez un problème virtio.
Juliusz Gonera
2
VBoxManage modifyvm YourMachineName --nictype1 virtio
Brian Low
17

J'ai trouvé une solution plus simple pour moi

  • Hôte Ubuntu 14.04
  • invité Ubuntu 14.04
  • Nat avec redirection de port
  • vitesse de téléchargement extrêmement lente de l'invité. C'était si lent que le test de vitesse ne pouvait même pas mesurer cela.

Je viens de passer à l'adaptateur PCNet-Fast III. Et la vitesse devient assez bonne pour moi (40 Mb / s)

paul_di
la source
1
Travaillé pour moi avec l'hôte Ubuntu 14.04 et Guest Ubuntu 12.04.
Ross
1
Pour passer à PCNet Fast III dans Vagrantfile, utilisez v.customize ["modifyvm", :id, "--nictype1", "Am79C973"].
Juliusz Gonera
Cela fonctionne très bien! J'avais des problèmes avec la apt-getsuspension en essayant de télécharger. Finalement, cela fonctionnerait, mais changer la carte réseau comme ci-dessus résout le problème.
Brendon Muir
Travaillé avec l'hôte Win10 exécutant Ubuntu 16.10.
Robsn
0

La réponse de @ auramo est utile, mais veuillez noter qu'elle spécifie un NIC spécifique: # 1. Dans mon système, par exemple, j'ai de nombreuses interfaces réseau. Je devais préciser --nictype4.

En outre, d'autres utilisateurs ont signalé des avantages ailleurs en spécifiant natdnshostresolver#et natdnsproxy#où se #trouve un numéro identifiant votre NIC. Dans le mien, cela ressemble à ceci:

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
la source