I've toyed with increasing the target and this does solve the excessive drops. I haven't played with limit and quantum all that much.
My go-to solution for this would be different classes, a.k.a. traditional QoS. But , wouldn't it be possible to tune fq_codel punish the large flows 'properly' for this very low bandwidth scenario? Surely <1kb ICMP packets can squeeze through properly without being dropped if there is 350kbps available, if the competing flow is managed correctly.
I could create a class filter by packet length, thereby moving ICMP/VoIP to its own tc class, but this goes against "no knobs" it seems like I'm re-inventing the wheel of fair queuing - shouldn't the smallest flows never be delayed/dropped automatically?
Lowering Quantum below 1500 is confusing, serving a fractional packet in a time interval?
Is there real value in tuning fq_codel for these connections or should people migrate to something else like nfq_codel?