I’m sharing some of Flent tests I ran on hAP ac2 with ROS 7.3.1.
Baseline, no queues, fasttrack enabled. Router CPU utilization around 6% during the test.

FQ_codel, simple queue configuration, fasttrack disabled. CPU 29%.
/queue type
add fq-codel-limit=1000 fq-codel-quantum=300 fq-codel-target=12ms kind=fq-codel name=fq-codel
/queue simple
add max-limit=118M/11M name=fq-codel queue=fq-codel/fq-codel target=ether1

Cake, simple queue configuration, fasttrack disabled. CPU 31%.
/queue type
add cake-flowmode=dual-srchost cake-nat=yes kind=cake name=cake-up
add cake-flowmode=dual-dsthost cake-nat=yes kind=cake name=cake-down
/queue simple
add max-limit=118M/11M name=cake queue=cake-down/cake-up target=ether1

The next two tests are with fasttrack enabled. Queue trees are attached to the interfaces HTB, which allows the queues to work along with the fasttrack. This is how I’ve been using fq_codel for some time now with good real world experience.
Fq_codel, queue tree, fasttrack enabled. CPU 16%.
/queue type
add fq-codel-limit=1000 fq-codel-quantum=300 fq-codel-target=12ms kind=fq-codel name=fq-codel
/queue tree
add bucket-size=0.01 max-limit=118M name=download packet-mark=no-mark parent=bridge1 queue=fq-codel
add bucket-size=0.01 max-limit=11M name=upload packet-mark=no-mark parent=ether1 queue=fq-codel

Cake, queue tree, fasttrack enabled. CPU 19%.
/queue type
add cake-flowmode=dual-srchost cake-nat=yes kind=cake name=cake-up
add cake-flowmode=dual-dsthost cake-nat=yes kind=cake name=cake-down
/queue tree
add bucket-size=0.01 max-limit=118M name=download packet-mark=no-mark parent=bridge1 queue=cake-down
add bucket-size=0.01 max-limit=11M name=upload packet-mark=no-mark parent=ether1 queue=cake-up

I don’t fully understand how to interpret the graphs other than looking at the average black line. My takeaways:
- It seems there isn’t much difference between simple queue vs queue tree with interface HTB. But with interface HTB I can have fasttrack enabled, which significantly lowers CPU utilization, almost by a half with fq_codel. Also, the graphs are more smooth with fasttrack on.
- Observing WAN interface traffic graph, I could clearly see how cake’s graph was a lot more jagged and also smaller overall (less download bandwidth) - compared to the same scenario with fq_codel.
- There is less overlap in different TCP upload lines for cake, so it’s seems to separate those different types of traffic better. Not sure what that means in practical terms.
- If I interpret the graphs correctly, both cake and fq_codel showed good results, massively better over baseline.
- There are definitely a lot of options with cake to play with, I used almost all defaults. For fq_codel I have more customized configuration based on several recommendations from trusted sources.
For the time being I’m sticking with fq_codel as it’s known to use less CPU (which I need available for several WireGuard VPN tunnels). I have been using fq_codel because it wasn’t clear if there were issues with cake in RouterOS. Now that 7.3 came out, and the whole matter has been clarified about how it’s supposed to be configured, this is a good option too. I just don’t know if I see any improvements over my current configuration. Maybe there are, I just don’t know what to look for in RRUL tests
.
If anyone cares to comment on the results or make suggestions, I would be interested to hear them out.
rrul-2022-06-11T150550.863792.fq_codel-queue_tree-fasttrack_on.flent.gz (221 KB)
rrul-2022-06-11T151710.095351.cake-queue_tree-fasttrack_on.flent.gz (239 KB)
rrul-2022-06-11T151204.298760.no_queues-fasttrack_on.flent.gz (228 KB)
rrul-2022-06-11T152832.655991.fq_codel-simple_queue-fasttrack_off.flent.gz (227 KB)
rrul-2022-06-11T152347.781716.cake-simple_queue-fasttrack_off.flent.gz (231 KB)