[OVN] QoS gives different bandwidth limit measures than ml2/ovs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
High
|
Maciej Jozefczyk |
Bug Description
There is a difference in QoS tempest tests results between ml2/ovs and ml2/ovn.
In the change [1] that enables QoS tempest tests for OVN the test neutron_
fails on the last check [2], after the policy is updated to be configured with values:
max_kbps=
max_burst_
Which means:
max_kbps = 3000
max_burst_kbps = 3000
Previous QoS validations in this test passes with values (max_kbps, max_burst_kbps): (1000, 1000) and (2000, 2000).
I added some more debug log to the tempest test here [3], so that we can compare test expected and measured values. Those are taken from test runs from gates.
-------
Expected is calculated as:
TOLERANCE_FACTOR = 1.5
constants.
MULTIPLEXING_FACTOR = 1 or 2 or 3 depends on stage of the test
LIMIT_BYTES_SEC = (constants.
-------
Results:
If expected <= measured, the test passes.
|max_kbps/
|(1000, 1000)|192000|
|(2000, 2000)|384000|
|(3000, 3000)|576000|
As we see only for (3000, 3000) OVN test failed. For (2000, 2000) it passed after 5 retries.
-------
So lets see how the QoS is configured on OVN nowadays:
stack@mjozefcz-
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+------
| direction | id | max_burst_kbps | max_kbps |
+------
| egress | 9dd84dc7-
+------
Configured OVN NBDB:
stack@mjozefcz-
_uuid : 1176fe8f-
action : {}
bandwidth : {burst=3000, rate=3000}
direction : from-lport
external_ids : {}
match : "inport == \"4521ef05-
priority : 2002
Configured meter on bridge:
stack@mjozefcz-
OFPST_METER_CONFIG reply (OF1.3) (xid=0x2):
meter=1 kbps burst stats bands=
type=drop rate=3000 burst_size=3000
Flow in bridge:
stack@mjozefcz-
cookie=0x398f0e17, duration=
-------
Questions:
* Why the test results are different compared to ml2/OVS?
* Maybe burst values should be configured differently?
[1] https:/
[2] https:/
[3] https:/
Changed in neutron: | |
assignee: | nobody → Maciej Jozefczyk (maciej.jozefczyk) |
summary: |
- [OVN] QoS gives different burst limit values + [OVN] QoS gives different bandwidth limit values |
summary: |
- [OVN] QoS gives different bandwidth limit values + [OVN] QoS gives different bandwidth limit measures than ml2/ovs |
Changed in neutron: | |
status: | New → In Progress |
Changed in neutron: | |
importance: | Undecided → High |
Ok, We figured out whats wrong.
The download speed of first batch of the data could be bigger than expected, and it causes slightly different measured values than expected. See the example, the limit has been set to 5Mbit/s:
root@mjozefcz- devstack- qos-2:~ # iperf3 -c 172.24.5.99 -R
Connecting to host 172.24.5.99, port 5201
Reverse mode, remote host 172.24.5.99 is sending
[ 4] local 172.24.5.1 port 59692 connected to 172.24.5.99 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 1.11 MBytes 9.32 Mbits/sec
[ 4] 1.00-2.00 sec 628 KBytes 5.15 Mbits/sec
[ 4] 2.00-3.00 sec 530 KBytes 4.34 Mbits/sec
[ 4] 3.00-4.00 sec 620 KBytes 5.08 Mbits/sec
[ 4] 4.00-5.00 sec 646 KBytes 5.30 Mbits/sec
[ 4] 5.00-6.00 sec 531 KBytes 4.35 Mbits/sec
[ 4] 6.00-7.00 sec 619 KBytes 5.07 Mbits/sec
[ 4] 7.00-8.00 sec 547 KBytes 4.48 Mbits/sec
[ 4] 8.00-9.00 sec 669 KBytes 5.48 Mbits/sec
[ 4] 9.00-10.00 sec 632 KBytes 5.18 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 6.61 MBytes 5.54 Mbits/sec 933 sender
[ 4] 0.00-10.00 sec 6.41 MBytes 5.37 Mbits/sec receiver
iperf Done. devstack- qos-2:~ #
root@mjozefcz-
The average bandwidth is: 5.54 Mbits/sec, which is upper the limit.
But if we'll omit the first batch of data:
root@mjozefcz- devstack- qos-2:~ # iperf3 -O 1 -c 172.24.5.99 -R
Connecting to host 172.24.5.99, port 5201
Reverse mode, remote host 172.24.5.99 is sending
[ 4] local 172.24.5.1 port 59402 connected to 172.24.5.99 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 1.08 MBytes 9.04 Mbits/sec (omitted)
[ 4] 0.00-1.00 sec 554 KBytes 4.53 Mbits/sec
[ 4] 1.00-2.00 sec 644 KBytes 5.27 Mbits/sec
[ 4] 2.00-3.00 sec 616 KBytes 5.05 Mbits/sec
[ 4] 3.00-4.00 sec 648 KBytes 5.31 Mbits/sec
[ 4] 4.00-5.00 sec 495 KBytes 4.05 Mbits/sec
[ 4] 5.00-6.00 sec 626 KBytes 5.12 Mbits/sec
[ 4] 6.00-7.00 sec 650 KBytes 5.33 Mbits/sec
[ 4] 7.00-8.00 sec 523 KBytes 4.29 Mbits/sec
[ 4] 8.00-9.00 sec 650 KBytes 5.33 Mbits/sec
[ 4] 9.00-10.00 sec 520 KBytes 4.26 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 5.83 MBytes 4.89 Mbits/sec 809 sender
[ 4] 0.00-10.00 sec 5.79 MBytes 4.85 Mbits/sec receiver
Then the avg is withing the limit: 4.85 Mbits/sec.