On Wed, Jun 13, 2018 at 11:29:43AM +0100, Sofia Marques wrote:
> Hi there.
> I have a scenario where I'm using opendaylight and ovs switch where I have
> installed qos according to the following:
> - Qos max rate of 100 Mbps;
> - Queue 1 with max rate of 100 Mbps, min rate of 30 Mbps, priority 1;
> - Queue 2 with max rate of 50 Mbps, min rate of 20 Mbps, priority 2;
> - Queue 3 with max rate of 30 Mbps, min rate of 10 Mbps, priority 3;
> - Queue 4 with max rate of 10 Mbps, min rate of 1 Mbps, priority 4;
> I have assigned 5 flows to each queue and I'm running iperf UDP tests for
> each of them with the following bandwidth specifications:
> - Flows for queue 1 with 6 Mbps;
> - Flows for queue 2 with 4 Mbps;
> - Flows for queue 3 with 2 Mbps;
> - Flows for queue 4 with 1 Mbps;
> Everything works perfectly, with every flow reaching the specified
> But when I increase the number of flows for each queue to 10, they do not
> reach the speficied bandwidth. If I'm not mistaken, every queue min rate is
> guaranteed, which means that 30+20+10+1 = 61 Mbps are used. Which leaves
> 100-61=39 Mbps to be used. I believe that 30 Mbps would be assigned to
> queue 1 to reach its desired bandwidth since it is the queue with higher
> priority and the 9 Mbps left would go to queue 2. But this is not
> happening, and neither queue 1 and queue 2 are assigned with this left
> bandwidth. I can see that each flow on queue 1 only reaches about 5 Mbps
> and in queue 2 around 3 Mbps. Am I getting this wrong or this problem has
> some other explanation?
> I would appreciate any help to understand what is happening.
The FAQ says the following.
Q: I configured QoS, correctly, but my measurements show that it isn't working
as well as I expect.
A: With the Linux kernel, the Open vSwitch implementation of QoS has two
- Open vSwitch configures a subset of Linux kernel QoS features, according
to what is in OVSDB. It is possible that this code has bugs. If you
believe that this is so, then you can configure the Linux traffic control
(QoS) stack directly with the "tc" program. If you get better results
that way, you can send a detailed bug report to b...@openvswitch.org.
It is certain that Open vSwitch cannot configure every Linux kernel QoS
feature. If you need some feature that OVS cannot configure, then you
can also use "tc" directly (or add that feature to OVS).
- The Open vSwitch implementation of OpenFlow allows flows to be directed
to particular queues. This is pretty simple and unlikely to have serious
bugs at this point.
However, most problems with QoS on Linux are not bugs in Open vSwitch at
all. They tend to be either configuration errors (please see the earlier
questions in this section) or issues with the traffic control (QoS) stack
in Linux. The Open vSwitch developers are not experts on Linux traffic
control. We suggest that, if you believe you are encountering a problem
with Linux traffic control, that you consult the tc manpages (e.g. tc(8),
tc-htb(8), tc-hfsc(8)), web resources (e.g. http://lartc.org/), or mailing
lists (e.g. http://vger.kernel.org/vger-lists.html#netdev).
discuss mailing list