QoS - Change the way we measure bw limits
This patch introduces new way of fetching the data.
Instead creating the file, it reads /dev/zero.
/dev/zero is always very fast, so we also break the
previous hard disk limitations.
The test time is limited to 5 seconds. After that we
calculate avg bytes per second value and compare it
to expected one.
Sometimes it is visible that first kilobytes of the
test file are downloaded a little bit faster than the
actual bw limit claims, especially while testing OVN
as a backend.
When it happens the avg bytes per second value that is
measured in the test could be higher than required limit.
It is pretty easy to show the case while testing QoS with iperf3:
Accepted connection from 172.24.5.1, port 59690
[ 5] local 10.1.0.35 port 5201 connected to 172.24.5.1 port 59692
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 5] 0.00-1.00 sec 1.32 MBytes 11.0 Mbits/sec 139 2.62 KBytes
[ 5] 1.00-2.00 sec 628 KBytes 5.15 Mbits/sec 96 10.5 KBytes
[ 5] 2.00-3.00 sec 502 KBytes 4.12 Mbits/sec 84 7.85 KBytes
[ 5] 3.00-4.00 sec 649 KBytes 5.32 Mbits/sec 83 10.5 KBytes
[ 5] 4.00-5.00 sec 643 KBytes 5.26 Mbits/sec 84 3.93 KBytes
[ 5] 5.00-6.00 sec 529 KBytes 4.33 Mbits/sec 73 5.23 KBytes
[ 5] 6.00-7.00 sec 628 KBytes 5.15 Mbits/sec 92 20.9 KBytes
[ 5] 7.00-8.00 sec 534 KBytes 4.37 Mbits/sec 82 18.3 KBytes
[ 5] 8.00-9.00 sec 667 KBytes 5.47 Mbits/sec 110 7.85 KBytes
[ 5] 9.00-10.00 sec 635 KBytes 5.20 Mbits/sec 90 11.8 KBytes
[ 5] 10.00-10.02 sec 0.00 Bytes 0.00 bits/sec 0 11.8 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.02 sec 6.61 MBytes 5.53 Mbits/sec 933 sender
[ 5] 0.00-10.02 sec 6.41 MBytes 5.36 Mbits/sec receiver
-----------------------------------------------------------
We can find out that during first second of the test the bw limit
is exceeded, but after that the traffic is shaped.
In our case when we run the tempest QoS test the avg bytes per second
measured value that we compare with bw limit is impacted.
Closes-Bug: 1866039
Change-Id: I0964464e709baf9958548384933bd000fdee979b
2 files changed