[libvirt-users] Poor network performance

Michal Privoznik mprivozn at redhat.com
Mon May 15 06:27:30 UTC 2017


On 05/12/2017 11:02 AM, Sławomir Kapłoński wrote:
> Hello,
> 
> I have some problem with poor network performance on libvirt with qemu and openvswitch.
> I’m using libvirt 1.3.1, qemu 2.5 and openvswitch 2.6.0 on Ubuntu 16.04 currently.
> My connection diagram looks like below:
> 
>                                                                                 +---------------------------+
>                                +---------------------------+                    |         Net namespace     |
> +------------------+           |        OVS bridge         |                    |                           |
> |                  |           |                           |                    |                           |
> |        VM        |           |                           |                    |                           |
> |                  |      +----+---+                  +----+-----+         +----+---+                       |
> |                  +------+tap dev |                  |  veth A  +---------+ veth B |                       |
> |                  |      +--------+                  +----------+         +--------+                       |
> |    iperf -s<---------------------------------------------------------------------------+iperf -c          |
> |                  |           |                           |                    |                           |
> +------------------+           |                           |                    |                           |
>                                |                           |                    |                           |
>                                +---------------------------+                    +---------------------------+
> 
> 
> 
> I haven’t got any QoS in tc configured on any interface. When I do this iperf test I have something about 150Mbps only. IMHO it should be something about 20-30 Gbps there.

There could be a lot of stuff that is suboptimal here.
Firstly, you should ping your vcpus and guest memory. Then, you might
want to enable multiqueue for the tap device (that way packet processing
can be split into multiple vcpus). You also want to make sure, you're
not overcommitting the host.
BTW: you may also try setting 'noqueue' qdisc for the tap device (if
supported by your kernel). Also, the guest is type of KVM, not qemu,
right? And you're using virtio model for the VM's NIC.

Michal




More information about the libvirt-users mailing list