Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue with faster connections #71

Closed
Heppie opened this issue May 26, 2020 · 26 comments
Closed

Issue with faster connections #71

Heppie opened this issue May 26, 2020 · 26 comments
Labels
bug Something isn't working

Comments

@Heppie
Copy link

Heppie commented May 26, 2020

My connection when tested on the speedtest.net website is 500mbps+. Everytime I try using this docker It returns <250mbps. I know some versions of the speedtest CLI have issues with high speed connections, are you using the official release from Ookla? https://www.speedtest.net/apps/cli

@henrywhitaker3
Copy link
Owner

Currently just using the version from running pip install speedtest-cli. I'll have a look into switching over, but won't be for a few days.

I have really slow internet (30ish down) so won't really be able to test it, but will probably make the changes in the dev docker image. I'll comment here when that's out.

@brosibj
Copy link

brosibj commented May 28, 2020

Wanted to +1 this issue (and possibly help with some of the research) as the official speedtest.net app uses web sockets instead of HTTP which makes things more reliable per the speedtest-cli github.

taganaka/SpeedTest also uses web sockets and is a popular alternative.

Some side-by-side testing

@tbirdv6
Copy link

tbirdv6 commented Jun 15, 2020

+1 this issue as well on 200/200 averaging a 93ish with Speed Tracker. Willing to test if you need someone to.

@henrywhitaker3
Copy link
Owner

henrywhitaker3 commented Jun 17, 2020

What are your results like for this one? (And can you post the output of running that with --output json on the end?)

@tbirdv6
Copy link

tbirdv6 commented Jun 17, 2020 via email

@tbirdv6
Copy link

tbirdv6 commented Jun 17, 2020

JSON contains a bit of PII I would rather not post here but here is the scrubbed version.

root@ubuntu:/git/SpeedTest# ./SpeedTest --output json
{"client":{"ip":"xxx.xxx.xxx.xxx","lat":"xx.xx","lon":"xx.xx","isp":"Frontier Communications"},"servers_online":"1000","server":{"name":"Tampa, FL","sponsor":"Frontier","distance":"xx.xx","latency":"2","host":"tampa.fl.speedtest.frontier.com:8080"},"ping":"2","jitter":"0","download":"217203287.153175","upload":"214973857.196093","_":"all ok"}

@henrywhitaker3
Copy link
Owner

Yeah no worries, only wanted to see the non PII bits. Looks like that's giving the same result as speedtest.net then?

I'll probably move over to this in the next few days and will comment here when it's in the dev image

@tbirdv6
Copy link

tbirdv6 commented Jun 17, 2020

Yep same as SpeedTest,net. Sounds great, I will test when you have it.

@henrywhitaker3
Copy link
Owner

Give the dev tag a go now

@tbirdv6
Copy link

tbirdv6 commented Jun 17, 2020

Gave it a go. For some reason it seems like Upload is good now, but Download is still off. Ran a few tests then deleted the container and spun up a new one. This is the result from 3 tests.
Ping
2.0ms (current)
2.0ms (average)
2.0ms (maximum)
Download
78.6Mbit/s (current)
72.8Mbit/s (average)
78.6Mbit/s (maximum)
Upload
218.5Mbit/s (current)
194.7Mbit/s (average)
218.5Mbit/s (maximum)

@henrywhitaker3
Copy link
Owner

Hmm that's weird that ping and upload works fine, but not dl. Fancy digging into the container for me?

docker exec -it <container> bash

Then go to the site directory:

cd /config/www/ && php artisan tinker

Then run SpeedTest++ with this in that PHP shell:

SpeedtestHelper::output()

This will give the same JSON output as earlier, so redact any PII before posting.

@tbirdv6
Copy link

tbirdv6 commented Jun 17, 2020

{"client":{"ip":xx.xx.xx.xx","lat":"xx.xx","lon":"xx.xx","isp":"Frontier Communications"},"servers_online":"1000","server":{"name":"Tampa, FL","sponsor":"Frontier","distance":"xx.xx","latency":"2","host":"tampa.fl.speedtest.frontier.com:8080"},"ping":"2","jitter":"0","download":"68722118.449528","upload":"195176104.553271","_":"all ok"}

@henrywhitaker3
Copy link
Owner

henrywhitaker3 commented Jun 17, 2020

Could you try

docker exec -it <container> /config/www/app/Bin/SpeedTest

to see if it is the same with the reduced download speed.

If that's the same, then it seems like it must be the docker networking limiting things rather than anything specific to this specific image. I'll do a bit of reading and see if i can see any similar issues

@XxROBOTICSxX
Copy link

Sorry to cut in on this, but whatever changes were made to the dev tag over the latest fixed an issue on my end with it giving inaccurate results (Download was never where it should have been and for some strange reason my upload was logging about double what I actually pay for). Results are now showing exactly what I expect, however my connection speed isn't near as fast as anyone else.

Hope that helps.

@henrywhitaker3
Copy link
Owner

Yeah, so looks like @tbirdv6 issue isn't universal with the download speed being a lot lower, as other people's tests are showing similar to speedtest.net. Issue now is that this client seems to report slightly faster speeds than the speedtest.net site.

@brosibj
Copy link

brosibj commented Jun 18, 2020

Since my original comment on this issue I've been testing with Speedtest++ running every hour and do also see faster speeds than I should - turns out this is an open issue. I tried rebuilding from source by changing the concurrency to 1 for all configurations but that just made the test very inconsistent.

I've since been using the official speedtest.net CLI which as expected works much better and is consistent with the main site.

CLI Options:

user@vm-mint:~$ speedtest --help
Speedtest by Ookla is the official command line client for testing the speed and performance of your internet connection.

Version: speedtest 1.0.0.2

Usage: speedtest [<options>]
  -h, --help                        Print usage information
  -V, --version                     Print version number
  -L, --servers                     List nearest servers
  -s, --server-id=#                 Specify a server from the server list using its id
  -I, --interface=ARG               Attempt to bind to the specified interface when connecting to servers
  -i, --ip=ARG                      Attempt to bind to the specified IP address when connecting to servers
  -o, --host=ARG                    Specify a server, from the server list, using its host's fully qualified domain name
  -p, --progress=yes|no             Enable or disable progress bar (Note: only available for 'human-readable'
                                    or 'json' and defaults to yes when interactive)
  -P, --precision=#                 Number of decimals to use (0-8, default=2)
  -f, --format=ARG                  Output format (see below for valid formats)
  -u, --unit[=ARG]                  Output unit for displaying speeds (Note: this is only applicable
                                    for ‘human-readable’ output format and the default unit is Mbps)
  -a                                Shortcut for [-u auto-decimal-bits]
  -A                                Shortcut for [-u auto-decimal-bytes]
  -b                                Shortcut for [-u auto-binary-bits]
  -B                                Shortcut for [-u auto-binary-bytes]
      --selection-details           Show server selection details
      --ca-certificate=ARG          CA Certificate bundle path
  -v                                Logging verbosity. Specify multiple times for higher verbosity
      --output-header               Show output header for CSV and TSV formats

 Valid output formats: human-readable (default), csv, tsv, json, jsonl, json-pretty

 Machine readable formats (csv, tsv, json, jsonl, json-pretty) use bytes as the unit of measure with max precision

 Valid units for [-u] flag: 
   Decimal prefix, bits per second:  bps, kbps, Mbps, Gbps
   Decimal prefix, bytes per second: B/s, kB/s, MB/s, GB/s
   Binary prefix, bits per second:   kibps, Mibps, Gibps
   Binary prefix, bytes per second:  kiB/s, MiB/s, GiB/s
   Auto-scaled prefix: auto-binary-bits, auto-binary-bytes, auto-decimal-bits, auto-decimal-bytes

Sample JSON output:

user@vm-mint:~$ speedtest -f json
{"type":"result","timestamp":"2020-06-18T19:01:15Z","ping":{"jitter":37.869,"latency":31.673999999999999},"download":{"bandwidth":45213496,"bytes":444682664,"elapsed":10003},"upload":{"bandwidth":1491111,"bytes":13004870,"elapsed":9024},"packetLoss":0,"isp":"XXXXXXX","interface":{"internalIp":"10.0.2.15","name":"enp0s3","macAddr":"xx:xx:xx:xx:xx:xx","isVpn":false,"externalIp":"xxx.xxx.xxx.xxx"},"server":{"id":#####,"name":"Frontier","location":"XXXXXXXXXX, XX","country":"XXXXXXXXXX","host":"XXX.XXX.XXX.XXX.XXX","port":8080,"ip":"XXX.XXX.XXX.XXX"},"result":{"id":"XXXXXXX","url":"https://www.speedtest.net/result/c/XXXXXXX"}}

@henrywhitaker3
Copy link
Owner

Yeah the concurrency set to 1 is also not accurate. I've been considering using the Ookla cli, but I can't find the source code for it and as a result am a bit hesitant to include it with this

@henrywhitaker3
Copy link
Owner

Right, dev tag is now using the Ookla binary, as it requires accepting Ookla EULA and privacy policy, you have to set the env variable OOKLA_EULA_GDPR to true in order for the container to run

@tbirdv6
Copy link

tbirdv6 commented Jun 18, 2020

Still getting results all over the place. I am really thinking this is a docker thing. I am going to try deploying to a standard VM and see if I get better results.

@henrywhitaker3
Copy link
Owner

Could it be other devices using up bandwidth at the same time you are running the speed tests?

@tbirdv6
Copy link

tbirdv6 commented Jun 19, 2020

No, I am running it back to back with the standard speedtest.net web test and with taganaka speed on a linux VM and they both come back in excess of 200/200.

@henrywhitaker3
Copy link
Owner

Ah weird, sounds like something with your docker then

@henrywhitaker3 henrywhitaker3 added the bug Something isn't working label Jun 19, 2020
@stewartjustind
Copy link

Just wanted to jump in on this issue. I have gigabit internet, so usually pull around 600+ DL and 800+ upload pretty regularly. Ran the docker image for 3 days and it never logged above 450 DL or 300 UP. I did a Speedtest.net run and it logged 778 Down/868 Up - and did a manual run of speedtest-tracker and it pulled 51 Down/209 Up. Going to give the dev image a try and will report back.

@henrywhitaker3
Copy link
Owner

Yeah the latest tag has the python speedtest client which doesn't give accurate results. The dev tag uses Ookla's binary to run the tests which should give you the same/v similar results to the website. Will be merging the changes into master/latest pretty soon.

@stewartjustind
Copy link

The dev branch seems to work pretty well for me,

@tbirdv6
Copy link

tbirdv6 commented Jun 24, 2020

Sorry it took so long, I spun up a new docker instance and have tested out the dev tag and all is working well, getting accurate result and running like a charm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

6 participants