Another factor which can affect your total throughput and latency is Bufferbloat. The nature of TCP congestion is to build up the amount of data being transmitted, then drop back precipitously when congestion occurs, resulting in the sawtooth behavior seen in the great article Martin posted. The sawtooth behavior means that there are dips when your bandwidth is not being fully utilized.
Smart Queue Management (SQM) in the form of the fq_codel and Cake algorithms in routers deals with this, smoothing out the flow of data and ensuring fairness between different TCP connections. I’ve seen this make amazing improvements in download speeds when sawtoothing is avoided, and more importantly for most people, ensuring low latency. SQM requires upload and download maximum bandwidth to be configured somewhere between 5-10% less than the provisioned speeds, a price most people are willing to pay.
Peplink has partially enabled fq_codel on the Balance and Surf Soho routers as Mitigate Bufferbloat on their support.cgi page (on the home page of your router, change “index.cgi” in the url to “support.cgi”). It currently manages to the WAN upload value but is not managing the download side or even honoring the WAN download value as a maximum. Peplink hasn’t shared when they will fully implement fq_codel.
If the MAX HD2 has the Mitigate Bufferbloat feature, you may want to try it to see if it helps (I don’t have MAX experience, but Martin can probably comment). See this lengthy article for more details on Bufferbloat and Mitigate Bufferbloat:
Another feature that you can experiment with if it is available on the MAX is “DSL/Cable Optimization”. Martin has previously posted that it prioritizes acks. On a Balance it is under Network->QoS->Application. It is mutually exclusive with Mitigate Bufferbloat.
You can test for Bufferbloat at Speed test - how fast is your internet? | DSLReports, ISP Information. It gives you a Bufferbloat rating grade from A to F.