Mój klient skarży się na niskie prędkości internetu. W przypadku pomiaru za pomocą Speedtest.net prędkości są dopuszczalne. Okresowe pomiary pobierania wynoszą od 10% do 30% prędkości nominalnej. Nie umiem tego wytłumaczyć.
Trochę tła. Problematyczne połączenie występuje na jednej z tych słonecznych wysp karaibskich, gdzie szybki Internet nie jest największym atutem. Ostatnio prędkości Internetu stały się przyzwoite, nawet do 200 Mbps. Ale ping w obie strony do (powiedzmy) Amsterdamu to około 180 ms.
Klient ma połączenie światłowodowe 100 Mb / s. Podczas przeprowadzania testu szybkości na komputerze z systemem Windows (speedtest.net) do dostawcy usług internetowych CO uzyskujemy 95 Mb / s. Korzystając z tego samego testu prędkości do Amsterdamu, osiągamy 60-70 Mbs. W pełni do zaakceptowania.
Jakiś czas temu zainstalowałem RasPi, który okresowo pobiera plik z jednego z moich serwerów w Amsterdamie. W centrum danych, które jest bezpośrednio podłączone do AMS-IX. Za pomocą tego polecenia:
wget -O /dev/null --report-speed=bits http://aserv.example.net/~myuser/links/M77232917.txt
Plik .txt ma 23 MB bajtów liczb. (W rzeczywistości jest to jedna, ale największa Mersenne Prime, 23e6 cyfr)
Kiedy pobieram ten plik do problematycznej sieci, wget zgłasza to:
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]
To jest w tym samym czasie raporty speedtest.net 60-70 Mbps.
Wiem, że Raspi ma swoje ograniczenia. Ale ta prędkość jest bardzo zróżnicowana. Raz RasPi zgłasza to 11 Mbps, następnym razem 22 Mbps. Ale czasami tak niskie, jak 1,5 Mbps.
Kiedy robię ten test z naprawdę potężnym laptopem, najwyższe prędkości są nieco wyższe (do 30 Mb / s), ale wykazują te same niskie wartości. Oznacza to ograniczenie RasPi po stronie wysokiej, ale nie 10 Mbps po stronie niskiej.
Wydałem dokładnie to samo polecenie z serwera w Monachium w Niemczech w centrum danych. Prędkość 96 Mbps.
Następnie od konsumenta połączenie światłowodowe 100 Mb / s w Holandii: 65 Mb / s.
Następnie w moim domu, który ma nominalną prędkość 10 Mb / s ADSL. Speedtest pokazuje 10 Mb / s. Wget daje 8,5 Mbps. Co jest równe w mojej książce.
Wyklucza to jakiekolwiek ograniczenia na serwerze, który działa jako host dla pobierania plików.
Nie oczekuję, że ktoś może wskazać przyczynę powolności połączenia w siedzibie klienta. Ale czy ktoś może wyjaśnić rozbieżność między speedtest.net a wgetem?
Czy jest coś, co speedtest ignoruje, czy mierzy tylko piki? A może długi czas pingowania ma poważny wpływ na wget?
Uważam, że test wget daje rzeczywistą, efektywną prędkość, podczas gdy speedtest ma głównie na celu pokazanie reklamowanej prędkości.
źródło
ssh personal-server cat /dev/zero | pv > /dev/null
na osobistym serwerze, o którym wiesz, że nie jest ograniczona stawka, aby być niższa niż oczekiwana prędkość.Odpowiedzi:
Oprócz wymienionych innych powodów połączenia TCP nie działają dobrze z dużymi plikami, gdy produkt opóźniający przepustowość staje się duży.
Jak na skądinąd szybkim połączeniu z wyspą.
Zobacz wpis Wikipedii dotyczący strojenia TCP .
Speedtest może więc zrzucić mały plik przez połączenie z prędkością 95 Mb / s, ale
wget
może uzyskać tylko 10 Mb / s na pliku 20 MB.źródło
Dostawcy usług internetowych często nadają priorytet ruchowi na speedtest.net, aby mogli chwalić się szybkością swoich połączeń, podczas gdy w rzeczywistości nie zapewniają tak dużej przepustowości. Doskonale zdają sobie sprawę, że większość użytkowników sprawdzi tę witrynę tylko w celu potwierdzenia.
Należy również pamiętać, że szybkość transferu zależy zarówno od klienta, jak i serwera. W dzisiejszym świecie większość serwerów dławi się w taki czy inny sposób.
Wreszcie nie ma sensu oczekiwać stabilnej przepustowości dla połączeń zagranicznych. Po prostu nie ma czegoś takiego. Musi przejść przez nieskończoną liczbę przełączników, światłowodów, centrów danych, aby dotrzeć do ostatecznej lokalizacji. Wystarczy spowolnić tylko jedną ruchomą część.
źródło
wget
podać praktyczną miarę prędkości. Testy Speedtest prawdopodobnie obejmują rodzaj równoległości, która może wyjaśnić wyższe liczby.Dla dobrego testu średniej prędkości, myślę, że czas pobierania powinien wynosić co najmniej 90-120 sekund (aby uzyskać dobrą średnią)
źródło
wget
biegami i zsumować prędkośćJednym z powodów może być to, że często maksymalna prędkość nie może być osiągnięta przez pojedyncze połączenie TCP.
Speedtest.net niedawno wprowadził tryb pojedynczego połączenia. Spróbuj tego i sprawdź, czy to robi różnicę.
Następnie do pobierania użyj na przykład aria2 z parametrami, aby użyć wielu połączeń i porównać. na przykład
aria2c -d /dev -o null --allow-overwrite=true --file-allocation=none --max-connection-per-server=8 --min-split-size=1M http://aserv.example.net/~myuser/links/M77232917.txt
źródło
Użyj Fast.com Internet Speed Test , jest to test prędkości oparty na Netflix, co oznacza, że nie można go odróżnić od usługodawców internetowych od samego Netflix.
Jest to dokładniejszy test niż jakikolwiek inny test ogólnie. Ludzie nie będą się martwić, jak szybko strona się ładuje, ale raczej o to, jak szybko buforują się filmy ze względu na zwiększoną przepustowość niezbędną do wyświetlenia filmu.
Dostawcy usług internetowych często zwiększają prędkość w oparciu o domenę, z którą ktoś się łączy, jeśli jest to test prędkości lub używa portu 8080. Podczas gdy Netflix używa portu 80, wolniejszego portu, gdy jest on traktowany priorytetowo.
źródło
Czy to tylko ja, czy nikt nie zauważył, że powiedział Mbps i listę poleceń wget „MB / s”.
60 Mb / s, a uzyskanie 11,2 Mb jest normalne.
Mb / s i MB / s to dwie różne prędkości.
„Megabit jest o 1/8 większy niż megabajt, co oznacza, że aby pobrać 1 MB pliku w ciągu 1 sekundy, potrzebujesz połączenia o przepustowości 8 Mb / s.” Więc 11 Mb / s 8 = 88 Mb / s ... 11,2 Mb jest w rzeczywistości dobre do raportowania połączenia 60-70 Mb / s.
Czy ludzie mający pamięć tracą to. Nigdy nie uzyskasz prędkości 70 Mb / s przy prędkości testowania prędkości wynoszącej 70 Mb / s
źródło
wget
wynosi Mb / s, co przekłada się na megabity / s . MB / s tłumaczy się na MegaBytes / s . Po prostu uruchom własnewget
polecenie i sprawdź wynik.wget
polecenie zawiera,--report-speed=bits
które wynikiMb/s
sąMbit/s
. Bieganie bez--report-speed=bits
dawania,MB/s
co przekłada się naMByte/s
. Zwróć uwagę nab
iB
.