為什麼 Speedtest 和 Wget 之間存在差異?
我的客戶抱怨網速低。當使用 Speedtest.net 測量時,速度是可以接受的。定期測量的下載量是標稱速度的 10% 到 30%。我無法解釋。
一些背景。有問題的連接位於陽光明媚的加勒比海島嶼之一,那裡的快速網際網路並不是最大的資產。最近網際網路速度變得不錯,高達 200 Mbps。但是到(比如說)阿姆斯特丹的 ping 往返時間大約是 180 毫秒。
客戶擁有 100 Mbps 光纖連接。在 Windows 機器 (speedtest.net) 上對 ISP CO 進行速度測試時,我們獲得 95 Mbps。當對阿姆斯特丹使用相同的速度測試時,我們達到了 60-70 Mbs。完全可以接受。
前段時間我安裝了一個 RasPi,它會定期從我在阿姆斯特丹的一台伺服器中獲取文件。在直接連接到 AMS-IX 的數據中心中。使用此命令:
wget -O /dev/null --report-speed=bits http://aserv.example.net/~myuser/links/M77232917.txt
.txt 文件是 23MByte 的數字。(實際上它是最大的梅森素數,23e6 位)
當我在有問題的網路上下載該文件時,wget 會報告:
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]
同時 speedtest.net 報告 60-70 Mbps。
我知道 Raspi 有其局限性。但是這個速度變化很大。一次 RasPi 報告此 11 Mbps,下一次報告 22 Mbps。但有時低至 1.5 Mbps。
當我使用功能非常強大的筆記型電腦進行此測試時,最高速度略高(高達 30 Mbps),但也顯示出同樣的低速。因此,它表明 RasPi 在高端的限制,但不是 10 Mbps 的低端。
我從德國慕尼黑的數據中心的伺服器發出完全相同的命令。速度 96 Mbps。
然後來自荷蘭的消費者 100 Mbps 光纖連接:65 Mbps。
然後,在我家標稱 10 Mbps ADSL。Speedtest 顯示 10Mbps。Wget 提供 8.5 Mbps。這在我的書中是平等的。
這排除了對充當文件下載主機的伺服器的任何限制。
我不希望任何人能指出客戶端連接緩慢的原因。但是誰能解釋 speedtest.net 和 wget 之間的差異?
速度測試是否忽略了某些東西,還是僅測量峰值?還是 wget 受到長 ping 時間的嚴重影響?
我覺得wget測試給出的是真實有效的速度,而speedtest主要是為了展示標榜的速度。
除了發布的其他原因之外,當頻寬延遲產品變大時,TCP 連接不能很好地處理大文件。
就像在與島嶼的其他快速連接上一樣。
所以 Speedtest 可以通過連接以 95 mb/秒的速度轉儲一個小文件,但
wget
在 20 MB 的文件上只能獲得 10 mb/秒的速度。
ISP 通常會優先考慮到 speedtest.net 的流量,以便他們可以吹噓他們的連接速度有多快,而實際上,他們並沒有提供那麼多頻寬。他們非常清楚大多數使用者只會檢查該站點以進行確認。
您還必須記住,傳輸速度取決於客戶端和伺服器。在當今世界,大多數伺服器都以一種或另一種方式節流。
最後,期望穩定的海外連接頻寬是沒有意義的。只是沒有這樣的事情。它必須經過無數個交換機、光纖、數據中心才能到達最終位置。所需要的只是減速的一個活動部分。