[vbox-dev] linux host/guest: Network issues (VLANs, latency, smp)
Stephan von Krawczynski
skraw at ithnet.com
Sun Aug 11 03:07:35 PDT 2013
Hello all,
as you all probably know there are some issues around networking, yesterday I
stumbled across another one, so I would like to summarize what should be
adressed in future releases (highest priority first):
- latency
4.2.16 got better, but still there is a big difference in network latency
using virtio or "virtual Intel". And still, even "virtual Intel" is 3-4 times
slower than a real card or the same physical card on the host. Best
performance can be achieved with a single virtual cpu and "virtual Intel
cards". But if virtio would be a lot better quite some interrupts could be
saved, see this:
16: 573 0 IO-APIC-fasteoi virtio0
17: 32 5799 IO-APIC-fasteoi eth2
18: 7886614 0 IO-APIC-fasteoi eth3
19: 11015 7671908 IO-APIC-fasteoi eth0
eth3, eth0 and virtio0 do basically the same network traffic. But as you can
see the number of interrupts in virtio0 is next to zero compared to eth3 and
eth0. Even if the interrupts were the same to achieve good latency virtio0
still would be a lot better to use probably.
- SMP
networking really suffers from using more than 1 virtual cpu for a guest. The
latency gets a lot higher (though already a lot better in 4.2.16 than before)
and the throughput performance drops _down_. Unfortunately there are quite
some scenarios where more virtual cpu power is needed for the guest than one
cpu can deliver. But e.g. using 4 virtual cpus makes networking unusable in
production because of the very bad latency.
- vlan
if you have a box with igb (e.g. i350) physical network cards and your guest
uses vlans you have a problem. The VLAN filter in intels' i350 driver and
kernel 3.10.5 (and probably above) will filter out the incoming vlan tagged
packets (outgoing works). You can work around this by vconfig the vlans needed
on the _host_ interface (ifup is not needed). But that is not nice.
It would be best if the vbox network kernel module would be able to inform the
hosts' kernel about VLANs used by guests. If vconfig can, the module can do as
well.
--
Regards,
Stephan
More information about the vbox-dev
mailing list