[vbox-dev] linux host/guest: Network issues (VLANs, latency, smp)

Stephan von Krawczynski skraw at ithnet.com
Sun Aug 11 10:07:35 GMT 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