[libvirt-users] Strange behavior of QoS

Hi, I'm having some weird problem with the setup of the QoS on a bridged network. As the docs states, outbound/inbound average speed should be expressed in KBps (KBytes per second) but in order to get a maximum speed of 10Mbps (megabits per second) surprising enough I have to use 2560 on the guest (not 1280 as expected). Using 1280 units I get a speed og 5Mbps. I'm aware of peak and burst parameters but even with them I'm seeing the same (long-term) behavior. Here follows my configuration. Thank you in advance for any help you can provide. Domain definition (relevant part only) virsh # dumpxml mydomain <domain type='kvm' id='45'> [...] <devices> [...] <interface type='network'> <mac address='52:54:00:xx:xx:xx'/> <source network='br909'/> <target dev='vnet43'/> <model type='virtio'/> <bandwidth> <inbound average='2560'/> <outbound average='2560'/> </bandwidth> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> [...] </devices> </domain> The network definition: virsh # net-dumpxml br909 <network> <name>br909</name> <uuid>07319380-2025-cdcc-924a-149cd0370b56</uuid> <forward mode='bridge'/> <bridge name='br909' /> </network> And iperf result (client and server are on the same vlan and they are running on the same host) [ 5] local xx.xx.xx.xx port 5001 connected with xx.xx.xx.yy port 18396 [ 5] 0.0-30.1 sec 35.4 MBytes 9.87 Mbits/sec

2012/12/3 Davide Guerri <d.guerri@unidata.it>
Hi, I'm having some weird problem with the setup of the QoS on a bridged network.
As the docs states, outbound/inbound average speed should be expressed in KBps (KBytes per second) but in order to get a maximum speed of 10Mbps (megabits per second) surprising enough I have to use 2560 on the guest (not 1280 as expected). Using 1280 units I get a speed og 5Mbps.
I'm aware of peak and burst parameters but even with them I'm seeing the same (long-term) behavior.
Here follows my configuration.
Thank you in advance for any help you can provide.
Domain definition (relevant part only)
virsh # dumpxml mydomain <domain type='kvm' id='45'> [...] <devices> [...] <interface type='network'> <mac address='52:54:00:xx:xx:xx'/> <source network='br909'/> <target dev='vnet43'/> <model type='virtio'/> <bandwidth> <inbound average='2560'/> <outbound average='2560'/> </bandwidth> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> [...] </devices> </domain>
The network definition: virsh # net-dumpxml br909 <network> <name>br909</name> <uuid>07319380-2025-cdcc-924a-149cd0370b56</uuid> <forward mode='bridge'/> <bridge name='br909' /> </network>
And iperf result (client and server are on the same vlan and they are running on the same host)
[ 5] local xx.xx.xx.xx port 5001 connected with xx.xx.xx.yy port 18396 [ 5] 0.0-30.1 sec 35.4 MBytes 9.87 Mbits/sec
provide your os version and libvirt version plz. and use the following command to check the tc mtu size: tc filter list dev vnet0 root if the mtu size in the output is not 64kb,then you must update your libvirt to 0.9.11 or later.

On 05/dic/2012, at 08:08, Gao Yongwei <itxx00@gmail.com> wrote:
provide your os version and libvirt version plz. and use the following command to check the tc mtu size: tc filter list dev vnet0 root if the mtu size in the output is not 64kb,then you must update your libvirt to 0.9.11 or later.
Thanks Gao (and you all) for the reply and sorry for the multiple post, I'm using libvirt 0.9.8 on Ubuntu 12.04 and, yes, mtu is not 64k: !(~) # tc filter list dev vnet43 root filter parent ffff: protocol ip pref 49152 u32 filter parent ffff: protocol ip pref 49152 u32 fh 800: ht divisor 1 filter parent ffff: protocol ip pref 49152 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid :1 match 00000000/00000000 at 12 police 0xa rate 20480Kbit burst 2560Kb mtu 2560Kb action drop overhead 0b ref 1 bind 1 I'll update asap. Thanks again, Davide.
participants (3)
-
Davide Guerri
-
Davide Guerri
-
Gao Yongwei