-
Notifications
You must be signed in to change notification settings - Fork 116
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
Invalid upload speeds #226
Comments
What about 1.6.10? |
Nope. Same problem: ./speedtest-go -s 61186
speedtest-go v1.6.10 @showwin
✓ ISP: secret
✓ Found 1 Specified Public Server(s)
✓ Test Server: [61186] 0.00km Amstelveen by KPN B.V.
✓ Latency: 3.364744ms Jitter: 1.497131ms Min: 2.288636ms Max: 7.137832ms
✓ Download: 2358.57Mbps (used: 2811.63MB) (latency: 5ms jitter: 1ms min: 3ms max: 9ms)
✓ Upload: 734.18Mbps (used: 875.21MB) (latency: 5ms jitter: 0ms min: 4ms max: 7ms) I have at least 2 Gbit/s up & down glassfiber link for sure. For comparison, I will again run speedtest by Ookla now also: speedtest -s 61186
Speedtest by Ookla
Server: KPN B.V. - Amstelveen (id: 61186)
ISP: KPN
Idle Latency: 4.22 ms (jitter: 0.27ms, low: 3.88ms, high: 4.49ms)
Download: 2373.24 Mbps (data used: 2.8 GB)
7.40 ms (jitter: 1.41ms, low: 3.89ms, high: 27.83ms)
Upload: 2322.85 Mbps (data used: 2.7 GB)
4.39 ms (jitter: 1.09ms, low: 3.73ms, high: 22.87ms)
Packet Loss: 0.0%
Result URL: https://www.speedtest.net/result/c/edf83222-b159-4e83-ba61-b24968050a4e |
I even tried your speedtest-go version 1.5.0 as well... Same issue here:
I think using an even older binary won't make a difference or actually make it worse. |
Hi, @melroy89 I have some questions: Does this issue only occur in single mode? What will you get if you use single mode in speedtest.net on the chrome? I think one possibility is the performance difference caused by tcp sockets and http requests. Have you tried to select other servers? do they all have this problem? Thank you for your feedback. |
Same issue is in multi-mode as well actually. I only used single mode with a specific server ID in order to be reproducible and to get better comparable results. Multi-mode results (this is now using Amsterdam instead of Amstelveen):
But again, the upload is twice as low as it should be reporting. And yes, this is another server (Amsterdam). I do believe indeed that your test is using HTTP calls, right? While the Ookla test is using web-sockets...
Sorry. What do you mean exactly, you want me to run the official speedtest.net in a web browser like Chrome? |
|
Then I need to switch to another VM. I'm running these tests on my server (Ubuntu Server) without Xorg. So I can't run Chrome, nor I want to run Chrome on my server, if you understand. But sure, I will spin-up Linux Mint in another VM on the same physical machine (running Proxmox). Since this server has the fastest uplink at this moment at my home. I assigned 6 cores and 8GB RAM to this Linux Mint VM. Again, it's connected to the same bridge network on the same physical LAN interface towards my router that goes to my WAN. I first try to repeat the same speedtest from Ookla using the CLI on this other VM: speedtest -s 61186
Speedtest by Ookla
Server: KPN B.V. - Amstelveen (id: 61186)
ISP: KPN
Idle Latency: 4.18 ms (jitter: 0.10ms, low: 4.09ms, high: 4.27ms)
Download: 2351.98 Mbps (data used: 1.9 GB)
7.94 ms (jitter: 4.64ms, low: 3.98ms, high: 220.41ms)
Upload: 2302.59 Mbps (data used: 2.8 GB)
10.91 ms (jitter: 1.18ms, low: 3.72ms, high: 24.98ms)
Packet Loss: 0.0%
Result URL: https://www.speedtest.net/result/c/20eb208d-87d6-4969-bce2-b60840341ced Then I ran the same speedtest using Firefox at speedtest.net and using Amstelveen server: Result link: https://www.speedtest.net/result/16507254367 |
I also re-ran the same speedtest.net in Chromium using again the same Linux Mint VM, which gives better results than Firefox 🥳 : Result link: https://www.speedtest.net/result/16507277823 |
Could you switch the connections from multi to single? |
OK, I ran the test again at speedtest.net website using Chromium in the Linux Mint VM with Single mode: These results are much worse now (both download & upload numbers). Results: https://www.speedtest.net/result/16507300795 And I re-ran the single mode test again. Just to confirm, results: Results: https://www.speedtest.net/result/16507307126 And a 3rd time using single mode! Results: https://www.speedtest.net/result/16507311679 Single mode is really unpredictable. |
I noticed that you used multi mode (24 logical cores) in speedtest-go and still got a lower rate. Is the result also unpredictable? Will using fewer connections improve the upload rate? |
My ubuntu server has indeed 24 logical cores assigned to the VM. Interesting enough reducing the threads will dramatically decrease the upload speed (but NOT the download speed) using your
Second run:
3rd run, this is all very predictable as you can see:
Now, I will execute again 3 tests but with First:
Second:
Third run:
Finally only running multi-mode without
And another one:
|
-t 64? 😹 |
Sure, why not.. lol (result is the same as without any
|
-d |
See attachment. |
try |
I will provide a tcp version of the upload for you to test later, please wait a moment! |
./speedtest-go -m --unix
speedtest-go v1.7.8 (git-a052d7f) @showwin
ISP: secret
Found 44 Public Servers
Test Server: [62515] 3.43km Amsterdam (Netherlands) by bouwhuis.network
Latency: 7.351741ms Jitter: 6.105416ms Min: 4.957405ms Max: 25.647465ms
Packet Loss Analyzer: Running in background (<= 30 Secs)
Download: 2237.03 Mbps (Used: 2810.32MB) (Latency: 8ms Jitter: 5ms Min: 4ms Max: 23ms)
Upload: 838.43 Mbps (Used: 1007.79MB) (Latency: 5ms Jitter: 0ms Min: 4ms Max: 7ms)
Packet Loss: 0.00% (Sent: 268/Dup: 0/Max: 267) |
I'm excited. |
@melroy89 Here is a simple TCP implementation, please try it. |
How long should I run it? I constantly get a "Rate: xxxx". Anyway, this is the output (assuming this is only upload, then it looks very promising!):
|
1 minute |
Yeah, it looks great. We will try to implement it in the next version. |
It can be confirmed that this issue is caused by the performance difference between tcp and http. I'm talking about provide server performance, because I've run 10gbps on some high-performance servers using http api. |
Ow intresting. So you think the low http upload test isn't the issue of speedtest-go or speedtest itself or even the line. But more a potential bottleneck within my network like the server or the router that is unable to handle the http load? But is able to handle the tcp load? |
The best way is to use a different language implementation to do a control experiment. |
Anyway, thanks for implementing tcp test as well in your speedtest binary! Hopefully I eventually can use that option within another package I use: Telegraf. Which has this speedtest plugin as you might know, who is using your go binary. |
Yes, That seems to be the case. the SERVER [KN] (speedtestd.kpn.com:8080) handles TCP requests more efficiently. |
Please try to see if it works, thank you very much. |
Although this is still HTTP, This version improves load balancing. I am confused why more connections and provide servers can't increase the speed. 😢 |
I noticed that there is only one server in your log. Can you try |
Your code is indeed constantly spamming server ID: However, running with
|
First run: ./speedtest-go --protocol tcp --no-download
speedtest-go v1.8.0-beta.1 (git-dev) @showwin
✓ ISP: secret
✓ Found 50 Public Servers
✓ Test Server: [13764] 3.43km Amsterdam (Netherlands) by Eranium B.V.
✓ Latency: 5.478429ms Jitter: 613.64µs Min: 4.335088ms Max: 6.396818ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Upload: 953.10 Mbps (Used: 0.00MB) (Latency: 4ms Jitter: 0ms Min: 4ms Max: 5ms)
✓ Packet Loss: N/A Second run: ./speedtest-go -p tcp --no-download
speedtest-go v1.8.0-beta.1 (git-dev) @showwin
✓ ISP: secret
✓ Found 50 Public Servers
✓ Test Server: [13764] 3.43km Amsterdam (Netherlands) by Eranium B.V.
✓ Latency: 5.20639ms Jitter: 652.948µs Min: 4.187968ms Max: 6.296598ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Upload: 959.43 Mbps (Used: 0.00MB) (Latency: 4ms Jitter: 0ms Min: 4ms Max: 5ms)
✓ Packet Loss: N/A When trying to specifically pick Amstelveen again (ID 61186), it seems to do something, but no upload results?? ./speedtest-go --server=61186 -p tcp --no-download
speedtest-go v1.8.0-beta.1 (git-dev) @showwin
✓ ISP: secret
✓ Found 1 Specified Public Server(s)
✓ Test Server: [61186] 0.00km Amstelveen by KPN B.V.
✓ Latency: 6.427592ms Jitter: 4.222686ms Min: 4.434448ms Max: 19.050964ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Upload: 0.00 Mbps (Used: 0.00MB) (Latency: 5ms Jitter: 0ms Min: 3ms Max: 6ms)
✓ Packet Loss: N/A Again, I will compare these results with the official speedtest by Ookla (Amstelveen). I get: speedtest
Speedtest by Ookla
Server: KPN B.V. - Amstelveen (id: 61186)
ISP: KPN
Idle Latency: 4.23 ms (jitter: 0.11ms, low: 4.11ms, high: 4.34ms)
Download: 2370.23 Mbps (data used: 1.9 GB)
8.11 ms (jitter: 1.34ms, low: 5.46ms, high: 23.68ms)
Upload: 2321.89 Mbps (data used: 2.7 GB)
4.57 ms (jitter: 0.55ms, low: 3.79ms, high: 20.17ms)
Packet Loss: 0.0%
Result URL: https://www.speedtest.net/result/c/143c9c92-81f6-4d47-93cd-f3392d410050 |
61186 is unavailable? add -m to enable multi mode with tcp. in id13764 959Mpbs seems to be the typical value of gigabit network. |
I will try. This is the output:
No it's not, because this is not a gigabit network. Again look at my Speedtest by Ookla results, I should have 2.3 Gbps up & down. |
The server id ookla uses is 61186. |
I know... This is the result of speedtest-go of this server ID (see also: #226 (comment)):
|
i mean the download bandwidth of this server, not you. |
But.. I can also use server id 13764 (Eranium B.V. - Amsterdam) with Ookla if you wish, I will get the same 2.3 Gbps up & down:
My point is, is that speedtest-go is still not reaching 2.3 Gbps. With speedtest-go I will get ~900 Mbps. But with the same server (id 13764) I will get indeed 2.3 Gbps with Ookla. |
For a server provider, when HTTP is available, it does not mean that TCP is also available. |
window.OOKLA.INIT_DATA = {
"result": {
"date": 1725368944,
"id": "46e4da32-078a-4021-b1e8-cc6472e1db5c",
"connection_icon": "wireless",
"download": 2370058,
"upload": 2308320,
"latency": 4,
"distance": 0,
"country_code": "NL",
"server_id": 13764,
"server_name": "Amsterdam",
"sponsor_name": null,
"sponsor_url": null,
"connection_mode": "multi",
"isp_name": "KPN",
"isp_rating": "3.0",
"test_rank": 100,
"test_grade": "A+",
"test_rating": 5,
"idle_latency": "4",
"download_latency": "77",
"upload_latency": "7",
"path": "result\u002Fc\u002F46e4da32-078a-4021-b1e8-cc6472e1db5c",
"hasSecondary": true
}
}; You are using the multi mode in Ookla. |
Let me summarize my views:
|
First thanks for your replies.
./speedtest-go -m -p tcp --no-download
speedtest-go v1.8.0-beta.1 (git-dev) @showwin
✓ ISP: 77.61.56.117 (KPN) [52.3664, 4.8496]
✓ Found 50 Public Servers
✓ Test Server: [61186] 6.28km Amstelveen (Netherlands) by KPN B.V.
✓ Latency: 5.233999ms Jitter: 513.182µs Min: 4.621714ms Max: 6.180583ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Upload: 862.35 Mbps (Used: 0.00MB) (Latency: 5ms Jitter: 0ms Min: 4ms Max: 6ms)
✓ Packet Loss: 0.00% (Sent: 343/Dup: 0/Max: 342) Could we just pick one server ID and do all the TCP/HTTP tests from there? Via Ookla and your CLI. |
I also still want to add that there is a bug in your beta version, look above this is server id 61186. I will now perform the same tests by providing
|
https://www.speedtest.net/result/c/46e4da32-078a-4021-b1e8-cc6472e1db5c please try the bin again. it always points to speedtestd.kpn.com:8080 (ID 61186) |
Or could you provide me with access to the container for testing? |
No it doesn't always point to id 61186, but I think it's a good test server we could reuse for all future tests, so again we get consistence results. If I retry again (this time it's 13985): ./speedtest-go -m -p tcp --no-download
speedtest-go v1.8.0-beta.1 (git-dev) @showwin
✓ ISP: 77.61.56.117 (KPN) [52.3664, 4.8496]
✓ Found 50 Public Servers
✓ Test Server: [13985] 3.43km Amsterdam (Netherlands) by Macarne LLC
✓ Latency: 6.147926ms Jitter: 793.361µs Min: 4.920716ms Max: 7.407876ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Upload: 911.54 Mbps (Used: 0.00MB) (Latency: 26ms Jitter: 63ms Min: 4ms Max: 215ms)
✓ Packet Loss: 0.00% (Sent: 119/Dup: 0/Max: 118) |
Contact me via: https://matrix.to/#/@melroy:melroy.org |
OK, I sent you an invite request. |
Upload speed issue is now resolved with the latest release. I think this specific issue can be closed, I will open a new one: #230 |
I'm using your latest speedtest-go binary (v1.7.8) on my AMD64 server.
However, the upload speeds are just too low with your Go speedtest command. And yes, I'm using the same server Id!
First the speedtest binary by Ookla (these results are correct):
Now I executed directly after the test above test the following speedtest-go command, using the same server from Amstelveen... And I get lower upload speed, this is INcorrect:
I ran the upload again in debug mode
Then I also ran verbose mode (
-vvvvvv
) with the speedtest by Ookla, see:The text was updated successfully, but these errors were encountered: