[libvirt-users] How can a bridge be optimized?

Laine Stump laine at laine.org
Wed Jun 13 15:59:45 UTC 2012


On 06/11/2012 03:28 PM, Whit Blauvelt wrote:
> On Mon, Jun 11, 2012 at 07:22:48PM +0300, Henrik Ahlgren wrote:
>> On 06/11/2012 06:34 PM, Whit Blauvelt wrote:
>>> Looking into background info on these, it looks like SR-IOV capability is
>>> specific to certain NICs and not documented for KVM/libvirt in any obvious
>>> place. Maybe I just didn't find it.
>> I think SR-IOV is more for high-end 10 GigE networks; with 1 GigE NICs
>> and fairly modern hardware you should get decent performance (almost
>> wire-speed) with just simple virtio + bridge setup.
>>
>> Also, make sure you have the vhost_net module loaded (or kernel compiled
>> with CONFIG_VHOST_NET=y), recent (0.9.0 and newer I believe?) libvirt
>> versions should detect it and enable vhost=on with QEMU/KVM
>> automatically. That should give you some further performance boost.
>>
>> I agree that there is some room for improvement in libvirt documentation
>> regarding the network configuration.
> Thanks. Not sure if I have the invocation or prerequisites right. If I do
>
>     <interface type='bridge'>
>       <mac address='00:16:36:89:65:2e'/>
>       <source bridge='br0'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
>       <model type='virtio'/>
>     </interface>
>
> I get around 150Mb, (on a Gb interface). But then its still showing as
> "-device rtl8139" on the host. Should that be? 

No. If you say <model type='virtio'/>, then the qemu commandline will
have "-device virtio-net". If it doesn't then your config change hasn't
taken effect. After making the change, did you completely shutdown the
guest, then restart it (a reboot operation from within the guest isn't
sufficient to bring in the config changes, as it doesn't terminate and
restart the qemu process).

> What are the minimum versions
> of stuff for virtio to work for this? Virtio's getting passed through for
> memballoon (from XML in the form "<memballoon model='virtio'>") so it's
> there.

Those are two separate and unrelated drivers; they just coincidentally
both have "virtio" in their names.


>
> If I take out that "address type" line throughput drops to around 100Mb.

This piece doesn't make sense. If you remove the <address> line, a new
one will be automatically added, most likely at the same slot as the old
one. The virtual NIC has to be attached *somewhere* on the guest's PCI
bus. I'm guessing it was some other factor that changed the benchmark
results,.





More information about the libvirt-users mailing list