Why does this happen? (sqm, bufferbloat)

Aww to be honest now that I'm looking at it that Brume router @bluewavenet mentioned looks pretty dang nice. Especially the wifi model. I'm feeling uncertain now. Might get it if it's ever on sale.

@moeller0 that makes sense. Mostly. Save for most of the technical stuff haha. Can I run your script in a Linux VM? Or does it need to be on native hardware? If it's the latter it might take me a couple days to get the results.

I have not tried that, but aI see no reason why it should not work in a VM, but you need to install both speedtest-cli and mtr....

Clearly your ISP has issues too, not least a bottleneck somewhere.
With what you have now the results of your tests show you can use SQM to trade off raw speed for low latency. Running with A grade buffer bloat and ~38Mb/s will be more than good enough for most things. Sure uploading 8k videos might be a challenge but you can make the sow's ear your ISP provides into a low latency silk purse with careful config of SQM on your cheap refurb router :wink:
Maybe save up for something better or get yourself signed up for a Starlink terminal!

Sorry took me a bit to get this set up. I don't know what the question marks mean in some spots.

SQM disabled:

sudo ./combined_mtr_speedtest.sh
#! /bin/bash
# if 

# show what is going to be run
cat $0
echo ""

SESSION_DATETIME=$( date "+%Y%m%dT%H%M%S" )
MTR_INTERVAL_SECS=0.2
MTR_HOST_IP="8.8.8.8"

echo "Starting unidirectional speedtest"
echo ""

# idle RTT
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 100 ${MTR_HOST_IP} > mtr_idle_${SESSION_DATETIME}.out ; 
# loaded RTTs
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 150 ${MTR_HOST_IP} > mtr_loaded_${SESSION_DATETIME}.out & 
# der speeedtest
speedtest-cli > speedtest_${SESSION_DATETIME}.out

# wait for background job to finish
wait
echo "Unidirectional speedtests finished..."
echo ""


echo "RTT to ${MTR_HOST_IP} idle:"
cat ./mtr_idle_${SESSION_DATETIME}.out
echo ""

echo "Speedtest.net results:"
cat ./speedtest_${SESSION_DATETIME}.out
echo ""

echo "RTT to ${MTR_HOST_IP} unidirectional loads:"
cat ./mtr_loaded_${SESSION_DATETIME}.out
echo ""



echo "Starting bidirectional speedtest"
echo ""


## loaded RTTs
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 150 ${MTR_HOST_IP} > mtr_fully_loaded_${SESSION_DATETIME}.out & 

# der speeedtest
speedtest-cli --no-upload > speedtest_no-upload_${SESSION_DATETIME}.out &
speedtest-cli --no-download > speedtest_no-download_${SESSION_DATETIME}.out

# wait for background job to finish
wait
echo "Biidirectional speedtests finished..."
echo ""

echo "Speedtest.net result DOWN:"
cat ./speedtest_no-upload_${SESSION_DATETIME}.out
echo ""

echo "Speedtest.net results UP:"
cat ./speedtest_no-download_${SESSION_DATETIME}.out
echo ""

echo "RTT to ${MTR_HOST_IP} bidirectional load:"
cat ./mtr_fully_loaded_${SESSION_DATETIME}.out
echo ""

exit 0

Starting unidirectional speedtest

Unidirectional speedtests finished...

RTT to 8.8.8.8 idle:
Start: 2020-09-23T02:00:56-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   100    0.6   0.5   0.2   0.8   0.1
  2. AS???    ???                      100.0   100    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   100    4.6   5.7   2.4  34.4   4.8

Speedtest.net results:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Pilot (City, State) [6.55 km]: 7.55 ms
Testing download speed................................................................................
Download: 303.95 Mbit/s
Testing upload speed......................................................................................................
Upload: 4.01 Mbit/s

RTT to 8.8.8.8 unidirectional loads:
Start: 2020-09-23T02:01:22-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   150    0.6   0.4   0.1   1.1   0.2
  2. AS???    ???                      100.0   150    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.7%   150    3.7   7.1   2.1  61.8   8.5

Starting bidirectional speedtest

Biidirectional speedtests finished...

Speedtest.net result DOWN:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Lemon Clove Pte.Limited (City, State) [6.54 km]: 7.785 ms
Testing download speed................................................................................
Download: 309.51 Mbit/s
Skipping upload test

Speedtest.net results UP:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Pilot (City, State) [6.55 km]: 7.921 ms
Skipping download test
Testing upload speed......................................................................................................
Upload: 1.61 Mbit/s

RTT to 8.8.8.8 bidirectional load:
Start: 2020-09-23T02:01:57-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   150    0.8   0.4   0.1   1.3   0.2
  2. AS???    ???                      100.0   150    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   150    6.9   6.5   1.5  44.0   6.3

SQM enabled (31000 in/eg):

sudo ./combined_mtr_speedtest.sh
#! /bin/bash
# if 

# show what is going to be run
cat $0
echo ""

SESSION_DATETIME=$( date "+%Y%m%dT%H%M%S" )
MTR_INTERVAL_SECS=0.2
MTR_HOST_IP="8.8.8.8"

echo "Starting unidirectional speedtest"
echo ""

# idle RTT
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 100 ${MTR_HOST_IP} > mtr_idle_${SESSION_DATETIME}.out ; 
# loaded RTTs
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 150 ${MTR_HOST_IP} > mtr_loaded_${SESSION_DATETIME}.out & 
# der speeedtest
speedtest-cli > speedtest_${SESSION_DATETIME}.out

# wait for background job to finish
wait
echo "Unidirectional speedtests finished..."
echo ""


echo "RTT to ${MTR_HOST_IP} idle:"
cat ./mtr_idle_${SESSION_DATETIME}.out
echo ""

echo "Speedtest.net results:"
cat ./speedtest_${SESSION_DATETIME}.out
echo ""

echo "RTT to ${MTR_HOST_IP} unidirectional loads:"
cat ./mtr_loaded_${SESSION_DATETIME}.out
echo ""



echo "Starting bidirectional speedtest"
echo ""


## loaded RTTs
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 150 ${MTR_HOST_IP} > mtr_fully_loaded_${SESSION_DATETIME}.out & 

# der speeedtest
speedtest-cli --no-upload > speedtest_no-upload_${SESSION_DATETIME}.out &
speedtest-cli --no-download > speedtest_no-download_${SESSION_DATETIME}.out

# wait for background job to finish
wait
echo "Biidirectional speedtests finished..."
echo ""

echo "Speedtest.net result DOWN:"
cat ./speedtest_no-upload_${SESSION_DATETIME}.out
echo ""

echo "Speedtest.net results UP:"
cat ./speedtest_no-download_${SESSION_DATETIME}.out
echo ""

echo "RTT to ${MTR_HOST_IP} bidirectional load:"
cat ./mtr_fully_loaded_${SESSION_DATETIME}.out
echo ""

exit 0

Starting unidirectional speedtest

Unidirectional speedtests finished...

RTT to 8.8.8.8 idle:
Start: 2020-09-23T02:04:40-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   100    0.6   0.6   0.3   0.8   0.1
  2. AS???    ???                      100.0   100    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   100    5.2   7.1   2.6  49.1   7.5

Speedtest.net results:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Natural Wireless (City, State) [6.55 km]: 6.802 ms
Testing download speed................................................................................
Download: 29.20 Mbit/s
Testing upload speed......................................................................................................
Upload: 3.55 Mbit/s

RTT to 8.8.8.8 unidirectional loads:
Start: 2020-09-23T02:05:06-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   150    0.9   0.4   0.1   1.1   0.2
  2. AS???    ???                      100.0   150    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   150   18.4   6.4   2.1  49.3   6.7

Starting bidirectional speedtest

Biidirectional speedtests finished...

Speedtest.net result DOWN:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Lemon Clove Pte.Limited (City, State) [6.54 km]: 7.468 ms
Testing download speed................................................................................
Download: 29.09 Mbit/s
Skipping upload test

Speedtest.net results UP:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Lemon Clove Pte.Limited (City, State) [6.54 km]: 6.766 ms
Skipping download test
Testing upload speed......................................................................................................
Upload: 1.54 Mbit/s

RTT to 8.8.8.8 bidirectional load:
Start: 2020-09-23T02:05:41-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   150    0.7   0.4   0.1   1.7   0.3
  2. AS???    ???                      100.0   150    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   150    3.5   5.7   1.5  51.2   6.1

SQM enabled (31000 in/eg) freshly after reboot:

sudo ./combined_mtr_speedtest.sh
#! /bin/bash
# if 

# show what is going to be run
cat $0
echo ""

SESSION_DATETIME=$( date "+%Y%m%dT%H%M%S" )
MTR_INTERVAL_SECS=0.2
MTR_HOST_IP="8.8.8.8"

echo "Starting unidirectional speedtest"
echo ""

# idle RTT
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 100 ${MTR_HOST_IP} > mtr_idle_${SESSION_DATETIME}.out ; 
# loaded RTTs
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 150 ${MTR_HOST_IP} > mtr_loaded_${SESSION_DATETIME}.out & 
# der speeedtest
speedtest-cli > speedtest_${SESSION_DATETIME}.out

# wait for background job to finish
wait
echo "Unidirectional speedtests finished..."
echo ""


echo "RTT to ${MTR_HOST_IP} idle:"
cat ./mtr_idle_${SESSION_DATETIME}.out
echo ""

echo "Speedtest.net results:"
cat ./speedtest_${SESSION_DATETIME}.out
echo ""

echo "RTT to ${MTR_HOST_IP} unidirectional loads:"
cat ./mtr_loaded_${SESSION_DATETIME}.out
echo ""



echo "Starting bidirectional speedtest"
echo ""


## loaded RTTs
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 150 ${MTR_HOST_IP} > mtr_fully_loaded_${SESSION_DATETIME}.out & 

# der speeedtest
speedtest-cli --no-upload > speedtest_no-upload_${SESSION_DATETIME}.out &
speedtest-cli --no-download > speedtest_no-download_${SESSION_DATETIME}.out

# wait for background job to finish
wait
echo "Biidirectional speedtests finished..."
echo ""

echo "Speedtest.net result DOWN:"
cat ./speedtest_no-upload_${SESSION_DATETIME}.out
echo ""

echo "Speedtest.net results UP:"
cat ./speedtest_no-download_${SESSION_DATETIME}.out
echo ""

echo "RTT to ${MTR_HOST_IP} bidirectional load:"
cat ./mtr_fully_loaded_${SESSION_DATETIME}.out
echo ""

exit 0

Starting unidirectional speedtest

Unidirectional speedtests finished...

RTT to 8.8.8.8 idle:
Start: 2020-09-23T02:12:05-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   100    0.5   0.5   0.2   2.3   0.2
  2. AS???    ???                      100.0   100    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   100    3.6   5.6   2.1  22.9   3.7

Speedtest.net results:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Pilot (City, State) [6.55 km]: 7.549 ms
Testing download speed................................................................................
Download: 29.20 Mbit/s
Testing upload speed......................................................................................................
Upload: 3.76 Mbit/s

RTT to 8.8.8.8 unidirectional loads:
Start: 2020-09-23T02:12:30-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   150    0.6   0.3   0.1   0.7   0.2
  2. AS???    ???                      100.0   150    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   150    5.8   5.8   1.8  75.0   6.9

Starting bidirectional speedtest

Biidirectional speedtests finished...

Speedtest.net result DOWN:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Pilot (City, State) [6.55 km]: 6.628 ms
Testing download speed................................................................................
Download: 29.10 Mbit/s
Skipping upload test

Speedtest.net results UP:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Pilot (City, State) [6.55 km]: 7.237 ms
Skipping download test
Testing upload speed......................................................................................................
Upload: 1.62 Mbit/s

RTT to 8.8.8.8 bidirectional load:
Start: 2020-09-23T02:13:05-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   150    0.4   0.4   0.1   1.0   0.3
  2. AS???    ???                      100.0   150    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   150    3.8   6.8   1.6 113.5  11.6

SQM enabled (270000 in/eg) freshly after reboot:

sudo ./combined_mtr_speedtest.sh
#! /bin/bash
# if 

# show what is going to be run
cat $0
echo ""

SESSION_DATETIME=$( date "+%Y%m%dT%H%M%S" )
MTR_INTERVAL_SECS=0.2
MTR_HOST_IP="8.8.8.8"

echo "Starting unidirectional speedtest"
echo ""

# idle RTT
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 100 ${MTR_HOST_IP} > mtr_idle_${SESSION_DATETIME}.out ; 
# loaded RTTs
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 150 ${MTR_HOST_IP} > mtr_loaded_${SESSION_DATETIME}.out & 
# der speeedtest
speedtest-cli > speedtest_${SESSION_DATETIME}.out

# wait for background job to finish
wait
echo "Unidirectional speedtests finished..."
echo ""


echo "RTT to ${MTR_HOST_IP} idle:"
cat ./mtr_idle_${SESSION_DATETIME}.out
echo ""

echo "Speedtest.net results:"
cat ./speedtest_${SESSION_DATETIME}.out
echo ""

echo "RTT to ${MTR_HOST_IP} unidirectional loads:"
cat ./mtr_loaded_${SESSION_DATETIME}.out
echo ""



echo "Starting bidirectional speedtest"
echo ""


## loaded RTTs
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 150 ${MTR_HOST_IP} > mtr_fully_loaded_${SESSION_DATETIME}.out & 

# der speeedtest
speedtest-cli --no-upload > speedtest_no-upload_${SESSION_DATETIME}.out &
speedtest-cli --no-download > speedtest_no-download_${SESSION_DATETIME}.out

# wait for background job to finish
wait
echo "Biidirectional speedtests finished..."
echo ""

echo "Speedtest.net result DOWN:"
cat ./speedtest_no-upload_${SESSION_DATETIME}.out
echo ""

echo "Speedtest.net results UP:"
cat ./speedtest_no-download_${SESSION_DATETIME}.out
echo ""

echo "RTT to ${MTR_HOST_IP} bidirectional load:"
cat ./mtr_fully_loaded_${SESSION_DATETIME}.out
echo ""

exit 0

Starting unidirectional speedtest

Unidirectional speedtests finished...

RTT to 8.8.8.8 idle:
Start: 2020-09-23T02:17:04-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   100    0.7   0.5   0.2   0.8   0.2
  2. AS???    ???                      100.0   100    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   100    6.5   6.3   2.4  34.7   4.7

Speedtest.net results:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Lemon Clove Pte.Limited (City, State) [6.54 km]: 6.521 ms
Testing download speed................................................................................
Download: 139.71 Mbit/s
Testing upload speed......................................................................................................
Upload: 3.78 Mbit/s

RTT to 8.8.8.8 unidirectional loads:
Start: 2020-09-23T02:17:29-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   150    0.2   0.4   0.1   1.8   0.3
  2. AS???    ???                      100.0   150    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   150    7.5   8.3   2.4  80.8   9.9

Starting bidirectional speedtest

Biidirectional speedtests finished...

Speedtest.net result DOWN:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Natural Wireless (City, State) [6.55 km]: 7.603 ms
Testing download speed................................................................................
Download: 138.48 Mbit/s
Skipping upload test

Speedtest.net results UP:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Lemon Clove Pte.Limited (City, State) [4.82 km]: 6.568 ms
Skipping download test
Testing upload speed.....................................................................................................
.Upload: 1.64 Mbit/s

RTT to 8.8.8.8 bidirectional load:
Start: 2020-09-23T02:18:05-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   150    0.6   0.5   0.1   2.0   0.3
  2. AS???    ???                      100.0   150    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   150    4.4   7.8   2.3  52.0   6.9

SQM disabled freshly after reboot:

sudo ./combined_mtr_speedtest.sh
#! /bin/bash
# if 

# show what is going to be run
cat $0
echo ""

SESSION_DATETIME=$( date "+%Y%m%dT%H%M%S" )
MTR_INTERVAL_SECS=0.2
MTR_HOST_IP="8.8.8.8"

echo "Starting unidirectional speedtest"
echo ""

# idle RTT
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 100 ${MTR_HOST_IP} > mtr_idle_${SESSION_DATETIME}.out ; 
# loaded RTTs
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 150 ${MTR_HOST_IP} > mtr_loaded_${SESSION_DATETIME}.out & 
# der speeedtest
speedtest-cli > speedtest_${SESSION_DATETIME}.out

# wait for background job to finish
wait
echo "Unidirectional speedtests finished..."
echo ""


echo "RTT to ${MTR_HOST_IP} idle:"
cat ./mtr_idle_${SESSION_DATETIME}.out
echo ""

echo "Speedtest.net results:"
cat ./speedtest_${SESSION_DATETIME}.out
echo ""

echo "RTT to ${MTR_HOST_IP} unidirectional loads:"
cat ./mtr_loaded_${SESSION_DATETIME}.out
echo ""



echo "Starting bidirectional speedtest"
echo ""


## loaded RTTs
mtr -ezb4w -i ${MTR_INTERVAL_SECS} -c 150 ${MTR_HOST_IP} > mtr_fully_loaded_${SESSION_DATETIME}.out & 

# der speeedtest
speedtest-cli --no-upload > speedtest_no-upload_${SESSION_DATETIME}.out &
speedtest-cli --no-download > speedtest_no-download_${SESSION_DATETIME}.out

# wait for background job to finish
wait
echo "Biidirectional speedtests finished..."
echo ""

echo "Speedtest.net result DOWN:"
cat ./speedtest_no-upload_${SESSION_DATETIME}.out
echo ""

echo "Speedtest.net results UP:"
cat ./speedtest_no-download_${SESSION_DATETIME}.out
echo ""

echo "RTT to ${MTR_HOST_IP} bidirectional load:"
cat ./mtr_fully_loaded_${SESSION_DATETIME}.out
echo ""

exit 0

Starting unidirectional speedtest

Unidirectional speedtests finished...

RTT to 8.8.8.8 idle:
Start: 2020-09-23T02:26:47-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   100    0.7   0.6   0.3   1.9   0.2
  2. AS???    ???                      100.0   100    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   100    5.5   6.5   2.7  76.7   9.9

Speedtest.net results:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Lemon Clove Pte.Limited (City, State) [6.54 km]: 7.415 ms
Testing download speed................................................................................
Download: 307.87 Mbit/s
Testing upload speed.....................................................................................................
.Upload: 3.99 Mbit/s

RTT to 8.8.8.8 unidirectional loads:
Start: 2020-09-23T02:27:12-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   150    0.6   0.4   0.1   1.0   0.2
  2. AS???    ???                      100.0   150    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.7%   150    2.7   7.1   1.8  62.4   7.4

Starting bidirectional speedtest

Biidirectional speedtests finished...

Speedtest.net result DOWN:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Lemon Clove Pte.Limited (City, State) [6.54 km]: 7.41 ms
Testing download speed................................................................................
Download: 300.01 Mbit/s
Skipping upload test

Speedtest.net results UP:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<obfuscated_ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Pilot (City, State) [6.55 km]: 7.338 ms
Skipping download test
Testing upload speed......................................................................................................
Upload: 1.66 Mbit/s

RTT to 8.8.8.8 bidirectional load:
Start: 2020-09-23T02:27:47-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   150    0.3   0.5   0.1   3.8   0.4
  2. AS???    ???                      100.0   150    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   150    5.4   6.9   2.1  42.4   5.9

Thanks!

Argh, I should have commented that out. I only put that in to easily document the exact commands for my own information and to quickly get this copied and pasted, but for normal use just put a hash in front of this line like #cat $0 to suppress that output.

In the mtr results, that typically means mtr did not manage to get some information resolved, so it marks these incomplete records with ???

Mmmh, these speedtests look terrible, all of them, if you look at the upstream. at best 4 Mbps out of 300 looks suspicious. Are you using wifi or a wired connection? And could it be that there still is another traffic shaper active, like have you tried luci-app-nft-qos or luci-app-qos? In that case what is the output of tc -s qdisc after a fresh reboot with SQM disabled?

Yeah I'm using wired. ONT <--ethernet--> router <--ethernet--> PC. It does indeed look pretty bad, especially the upload. But there's also that part that consistently says Loss% 100.0 which looks kinda alarming.

I ran this in an Ubuntu vm. That could possibly be the culprit. I have an old laptop laying around. I'll install Linux on that and run the script from there.

I have not tried any other traffic shapers and couldn't find anything mentioning qos in the installed software list.

 OpenWrt 19.07.4, r11208-ce6496d796
 -----------------------------------------------------
root@OpenWrt:~# tc -s qdisc
qdisc noqueue 0: dev lo root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc fq_codel 0: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
 Sent 237891 bytes 732 pkt (dropped 0, overlimits 0 requeues 5)
 backlog 0b 0p requeues 5
  maxpacket 1514 drop_overlimit 0 new_flow_count 3 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc noqueue 0: dev br-lan root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.1 root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc htb 1: dev eth0.2 root refcnt 2 r2q 10 default 0x12 direct_packets_stat 0 direct_qlen 1000
 Sent 58486 bytes 245 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc fq_codel 120: dev eth0.2 parent 1:12 limit 1001p flows 1024 quantum 300 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
 Sent 57950 bytes 241 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 1558 drop_overlimit 0 new_flow_count 115 ecn_mark 0
  new_flows_len 1 old_flows_len 4
qdisc fq_codel 130: dev eth0.2 parent 1:13 limit 1001p flows 1024 quantum 300 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 110: dev eth0.2 parent 1:11 limit 1001p flows 1024 quantum 300 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
 Sent 536 bytes 4 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 134 drop_overlimit 0 new_flow_count 4 ecn_mark 0
  new_flows_len 1 old_flows_len 0
qdisc ingress ffff: dev eth0.2 parent ffff:fff1 ----------------
 Sent 158008 bytes 279 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev wlan0 root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc htb 1: dev ifb4eth0.2 root refcnt 2 r2q 10 default 0x10 direct_packets_stat 0 direct_qlen 32
 Sent 174162 bytes 279 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc fq_codel 110: dev ifb4eth0.2 parent 1:10 limit 1001p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
 Sent 174162 bytes 279 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 1558 drop_overlimit 0 new_flow_count 109 ecn_mark 0
  new_flows_len 1 old_flows_len 11

This is after a reboot.

I should've also mentioned I disable SQM by going into Startup section and disabling sqm. I don't uncheck the Enable this SQM instance in the SQM section itself (because speeds seem to go back to 300 anyway). Is that the right way to do it?

Also I think I messed up haha. I used fq_codel +piece_of_cake in one of the more recent sqm-enabled tests. Here's the script output for fq_codel+simple (after reboot, 270000 in/eg):

sudo ./combined_mtr_speedtest.sh

Starting unidirectional speedtest

Unidirectional speedtests finished...

RTT to 8.8.8.8 idle:
Start: 2020-09-23T15:47:39-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   100    0.7   0.5   0.2   0.9   0.2
  2. AS???    ???                      100.0   100    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   100    3.7   6.6   2.2  64.7   8.7

Speedtest.net results:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Lemon Clove Pte.Limited (City, State) [6.54 km]: 7.95 ms
Testing download speed................................................................................
Download: 142.98 Mbit/s
Testing upload speed......................................................................................................
Upload: 3.99 Mbit/s

RTT to 8.8.8.8 unidirectional loads:
Start: 2020-09-23T15:48:05-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   150    0.6   0.6   0.1   4.2   0.5
  2. AS???    ???                      100.0   150    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.0%   150    8.9   7.4   2.5  28.4   4.5

Starting bidirectional speedtest

Biidirectional speedtests finished...

Speedtest.net result DOWN:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Lemon Clove Pte.Limited (North Bergen, NJ) [4.82 km]: 7.521 ms
Testing download speed................................................................................
Download: 164.20 Mbit/s
Skipping upload test

Speedtest.net results UP:
Retrieving speedtest.net configuration...
Testing from Verizon Fios (<ip>)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Lemon Clove Pte.Limited (City, State) [4.82 km]: 7.308 ms
Skipping download test
Testing upload speed......................................................................................................
Upload: 1.64 Mbit/s

RTT to 8.8.8.8 bidirectional load:
Start: 2020-09-23T15:48:40-0400
HOST: ubuntu                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    _gateway (192.168.48.2)   0.0%   150    0.6   0.5   0.1   2.2   0.3
  2. AS???    ???                      100.0   150    0.0   0.0   0.0   0.0   0.0
  3. AS15169  dns.google (8.8.8.8)      0.7%   150    9.7  10.1   2.1  61.9   9.3

That is benign, it is not uncommon for intermedoate networking elements to rate limit ICMP response generation and depriritize ICMP terminating on the hop, the relevant thing here is the data for the final hop. I only pressed mtr into service here because I like its output and sometimes the RTT development along the path can indicate path problems higher up.

But your upload still is terribly below the expected 300 Mbps, no?

Gotcha.

Yeah it's like 1-2 Mbps in some of the tests.. It's weird that it still shows ~300 on DSLReports and Ookla (when running from the vm). Although I do definitely notice it errors out quite often with Internal test error during server selection - specifically when running from host (Windows 10), but somehow not through Ubuntu guest. Funnily enough it seems to consistently get good results on DSLReports when run from a vm:

image

image

I ran it 10 times in Ubuntu, and every time it got A+ A A+.

That is with 270000 in/eg. In host OS, after 5 errors and refreshes I was finally able to get this gorgeous result:

image

Another thing I notice is when run in Guest, it never spikes above +10ms. It's consistently hovering anywhere from +0 to +7. In host it's either +0 or +100/+200 etc.

I am confused to say the least. Guest OS getting way better results than Host.

OMG disregard my previous confusion about Host vs Guest performance. I might've figured out part of the issue. It's Firefox. Specifically my Firefox config. One of my user.js settings must be causing weird results, because when i switch to a freshly created profile I get more or less the same results as Guest Ubuntu (A+ A A+ and 140 up/down when configured to 270000 in/eg). It's totally my bad for not trying a different browser from the get-go. More than that, I also seem to be getting either A A B or A B A even with SQM disabled. Sometimes as high as A A A.

I guess it still doesn't explain the atrocious up results from the script.. Could that be the reason of seemingly bad stability/latency? I'm referring to the symptoms listed in the OP + subpar VoIP experience, such as 2sec+ delay between when I say something and when the other person actually hears it or several seconds of silence followed up by all the words jumbled together at once. + people complaining about my lag in videogames (no biggie haha, but it seems to be more frequent recently).

I'll re-run the script once I install Ubuntu on the laptop and will report back.

140/120 out of requested 270/270 does not look great to me, could you try again with your router set to 100000/10000 Kbps (100/100 Mbps)?

I'm quite familiar with Cake performance on the C7 hardware, and that is about what is expected. Best I've ever seen it do is 180 on a 300Mbps cable line, 140 to 150 was the norm.

Even a dual-core MT7621A-based router will barely deliver 300 and that's with just the testing PC hardwired to the router. Add a dozen other connected devices and expect 150Mbps or less to the testing PC due to the per-device fairness.

1 Like

Just to reconfirm, you are running that script on a linux host and not on the router itself?

Neither. I'm running on a Linux guest (VM).