This Hacker News discussion got me diving in to enable smart queuing in my Ubiquiti EdgeMAX routers, the ones running EdgeOS. There’s a quick-and-dirty explanation of how to set it up in these release notes, search for “smart queue”.
Long story short, under the QOS tab I created a new policy for eth0 and set bandwidth numbers a little higher than the 100/5Mbps my ISP says it sells me. Then tested with DSLReports speed test
The EdgeRouter ™ Lite is supported and managed by UNMS ™ (Ubiquiti ® Network Management System), a comprehensive controller with an intuitive UI. A single control plane manages registered EdgeMAX ® devices across multiple sites. Try Online Learn More. The EdgeRouter ™ provides eight independent, RJ45 Gigabit ports to meet the needs of carrier-class networks. Convenient Rackmount Design The durable, 1U-high metal chassis allows for convenient mounting in a standard-sized, 19”-wide rack.
- No smart queue: I get about 105/5.5 with an F for bufferbloat. 300ms+
- Smart queue at 100/5: I get 90/4.5 with an A+ for bufferbloat.
- Smart queue at 110/6: I get about 100/5.3 with an A for bufferbloat.
Update: several folks have pointed out to me that smart queuing causes problems if you have a gigabit Internet connection. The CPU in a Ubiquiti router can only shape 80-400MBps of traffic depending on how new/expensive a router you bought. If you enable smart queueing on a gigabit Internet connection you will probably lose a lot of bandwidth.
Edge Router Lite Bufferbloat
The docs notes that connections are throttled to 95% of the maximums you set, which probably explains that 90/4.5 reading. I think the harm in lying a little here is I might get a few ms of lag from buffers.
Ubiquiti Edgerouter Lite Bufferbloat
The Hacker News discussion has a bunch of other stuff in it too. Apparently “Cake” is the new hotness in traffic shaping and is possible to add to EdgeOS, but awkward. Also it’s apparently hard to buy a consumer router that can really do Gigabit speeds, particularly if you want traffic shaping. Huh.
Every single time I’ve enabled QoS I end up regretting it as it breaks something I don’t figure out until months later. I wonder what it will be this time? I hate I have to statically configure the bandwidth throttles.