Network Speed – Why the Discrepancy Between Speedtest and Wget?

internetnetwork-speedperformance-monitoringwget

My customer complains about low internet speeds. When measured with Speedtest.net speeds are acceptable. Periodic measured downloads are 10% to 30% of the nominal speed. I cannot explain that.

Some background. The problematic connection is on one of those sunny Caribbean islands where fast internet is not the greatest asset. Lately internet speeds became decent, up to 200 Mbps. But ping round trip to (say) Amsterdam is about 180 ms.

The customer has a 100 Mbps fiber connection. When carrying out a speedtest on a Windows machine (speedtest.net) to the ISP CO we obtain 95 Mbps. When using the same speed test to Amsterdam we reach 60-70 Mbs. Fully acceptable.

Some time ago I installed a RasPi which periodically wgets a file from one of my servers in Amsterdam. In a datacenter, which is directly connected to AMS-IX. Using this command:

wget -O /dev/null --report-speed=bits http://aserv.example.net/~myuser/links/M77232917.txt

The .txt file is 23MByte of numbers. (Actually it is the one but largest Mersenne Prime, 23e6 digits)

When I download that file on the problematic network, wget reports this:

dev/null 100%[====================================================================>]  22.81M  11.6Mb/s   in 17s    

2019-02-08 14:27:55 (11.2 Mb/s) - ‘/dev/null’ saved [23923322/23923322]

That is at the same time speedtest.net reports 60-70 Mbps.

I know that the Raspi has its limitations. But this speed varies wildly. One time the RasPi report this 11 Mbps, the next time 22 Mbps. But sometimes as low as 1.5 Mbps.

enter image description here

When I do this test with a really powerful laptop, top speeds are somewhat higher (up to 30 Mbps), but also show the same lows. So it indicates a RasPi limitation on the high side, but not the 10 Mbps on the low side.

I issued exactly the same command from a server in München, Germany in a datacenter. Speed 96 Mbps.

Then from a consumer 100 Mbps fiber connection in the Netherlands: 65 Mbps.

Then, at my home which has nominal 10 Mbps ADSL. Speedtest shows 10Mbps. Wget gives 8.5 Mbps. Which is equal in my book.

This precludes any limitation on the server which acts as host for the file download.

I do not expect that anyone can point out the cause of the slowness of the connection at the customer premises. But can anyone explain the discrepancy between the speedtest.net and the wget?

Is there something the speedtest ignores, or does it measure only the peaks? Or is wget seriously influenced by long ping times?

I feel that the wget test gives the real, effective speed, while speedtest is mainly to show the advertised speed.

Best Answer

In addition to the other reasons posted, TCP connections don't work well with large files when the bandwidth-delay product becomes large.

Like on an otherwise fast connection to an island.

See Wikipedia's entry on TCP tuning.

So Speedtest can dump a small file through the connection at 95 mb/sec, but wget can only get 10 mb/sec on a 20 MB file.

Related Topic