Mengapa perbedaan antara Speedtest dan Wget?

18

Pelanggan saya mengeluh tentang kecepatan internet yang rendah. Bila diukur dengan Speedtest.net, kecepatan dapat diterima. Unduhan terukur berkala adalah 10% hingga 30% dari kecepatan nominal. Saya tidak bisa menjelaskannya.

Beberapa latar belakang. Koneksi bermasalah adalah di salah satu pulau Karibia yang cerah di mana internet cepat bukanlah aset terbesar. Akhir-akhir ini kecepatan internet menjadi baik, hingga 200 Mbps. Tapi ping pulang pergi ke (katakanlah) Amsterdam sekitar 180 ms.

Pelanggan memiliki koneksi serat 100 Mbps. Saat melakukan speedtest pada mesin Windows (speedtest.net) ke ISP CO, kami memperoleh 95 Mbps. Saat menggunakan tes kecepatan yang sama ke Amsterdam kami mencapai 60-70 Mbs. Sepenuhnya diterima.

Beberapa waktu lalu saya menginstal RasPi yang secara berkala menyimpan file dari salah satu server saya di Amsterdam. Dalam pusat data, yang terhubung langsung ke AMS-IX. Menggunakan perintah ini:

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

File .txt adalah angka 23MByte. (Sebenarnya itu adalah satu tetapi Mersenne Prime terbesar, 23e6 digit)

Ketika saya mengunduh file itu di jaringan yang bermasalah, wget melaporkan ini:

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]

Pada saat yang sama speedtest.net melaporkan 60-70 Mbps.

Saya tahu bahwa Raspi memiliki keterbatasan. Tetapi kecepatan ini sangat bervariasi. Suatu kali RasPi melaporkan 11 Mbps ini, pada saat berikutnya 22 Mbps. Namun terkadang serendah 1,5 Mbps.

masukkan deskripsi gambar di sini

Ketika saya melakukan tes ini dengan laptop yang benar-benar kuat, kecepatan tertinggi agak lebih tinggi (hingga 30 Mbps), tetapi juga menunjukkan posisi terendah yang sama. Jadi ini menunjukkan batasan RasPi di sisi atas, tetapi bukan 10 Mbps di sisi rendah.

Saya mengeluarkan perintah yang persis sama dari server di München, Jerman di pusat data. Kecepatan 96 Mbps.

Kemudian dari konsumen 100 Mbps koneksi fiber di Belanda: 65 Mbps.

Kemudian, di rumah saya yang memiliki nominal 10 Mbps ADSL. Speedtest menunjukkan 10Mbps. Wget memberi 8,5 Mbps. Yang sama dalam buku saya.

Ini mencegah segala batasan pada server yang bertindak sebagai tuan rumah untuk unduhan file.

Saya tidak berharap ada orang yang bisa menunjukkan penyebab lambatnya koneksi di lokasi pelanggan. Tapi adakah yang bisa menjelaskan perbedaan antara speedtest.net dan wget?

Apakah ada sesuatu yang diabaikan oleh speedtest, atau hanya mengukur puncak? Atau apakah wget serius dipengaruhi oleh waktu ping yang lama?

Saya merasa bahwa tes wget memberikan kecepatan yang nyata dan efektif, sedangkan speedtest terutama untuk menunjukkan kecepatan yang diiklankan.

Hans Linkels
sumber
Cara lain untuk mengecek kecepatan adalah dengan melakukan ssh personal-server cat /dev/zero | pv > /dev/null, pada server pribadi yang Anda tahu tidak dibatasi laju lebih lambat dari kecepatan yang Anda harapkan.
JoL
Saya membaca sekilas pertanyaan Anda. Dan sepertinya Anda memiliki bandwidth besar dan mungkin skenario tunda perjalanan pulang pergi yang signifikan juga dikenal sebagai "jaringan panjang gemuk". Saya sudah mengalami hal semacam ini secara pribadi dan menyelesaikannya dengan membuka banyak koneksi (saya menggunakan rsync). Bisakah Anda mencoba membuka banyak instance wget (coba 5, 10, 20)? Halaman Wikipedia adalah: produk penundaan bandwidth.
Trevor Boyd Smith
Wget melaporkan dalam byte secara default: [james @ lamia root] $ wget -O / dev / null 10.32.48.1/t1 / dev / null 100% [================= ====>] 100.00M 112MB / s dalam 0,9s [james @ lamia root] $ wget --report-speed = bits -O / dev / null 10.32.48.1/t1 / dev / null 100% [=== ==================>] 100,00M 932Mb / s dalam 0,9s
james
Pertimbangkan menjalankan server iperf untuk tcp dan yang kedua untuk udp pada mesin yang di-host DC Anda. Kemudian sebagai bagian dari tugas cron, panggil tes dari klien Anda dan lihat bagaimana kecepatannya dibandingkan dengan http.
Criggie
File apa itu? Apakah kompresibel dan server mendukung kompresi http? Meskipun Anda tidak dapat memperbaiki masalah bandwidth Anda mungkin dapat membuat file lebih kecil.
Salman A

Jawaban:

16

Selain alasan lain yang diposting, koneksi TCP tidak berfungsi dengan baik dengan file besar ketika produk bandwidth-delay menjadi besar.

Seperti pada koneksi yang cepat ke sebuah pulau.

Lihat entri Wikipedia tentang penyetelan TCP .

Jadi Speedtest dapat membuang file kecil melalui koneksi pada 95 mb / detik, tetapi wgethanya bisa mendapatkan 10 mb / detik pada file 20 MB.

Andrew Henle
sumber
2
Ini pengetahuan baru bagi saya. Baik sekali. Memang, produk bandwidth-delay tinggi (2,25 MB jika saya hitung dengan benar). Pandangan cepat menunjukkan buffer default 87kB dan maksimum 3,5 MB. (Saya menganggap Byte bukan bit). Saya harus menyelam lebih dalam ke ini untuk menilai lebih baik. Jika, dalam kombinasi speedtest, unduh banyak file kecil dan mencatat kecepatan maksimumnya, itu menjelaskan banyak hal.
Hans Linkels
21

ISP sering memprioritaskan lalu lintas ke speedtest.net sehingga mereka dapat membual seberapa cepat koneksi mereka, sementara pada kenyataannya, mereka tidak menyediakan bandwidth sebanyak itu. Mereka sangat menyadari bahwa sebagian besar pengguna hanya akan memeriksa situs itu untuk konfirmasi.

Anda juga harus ingat bahwa kecepatan transfer bergantung pada klien dan server. Dalam dunia sekarang ini kebanyakan server melambat dengan satu atau lain cara.

Akhirnya, tidak ada gunanya mengharapkan bandwidth yang stabil untuk koneksi ke luar negeri. Tidak ada yang seperti itu. Itu harus melalui jumlah tak terbatas switch, serat, pusat data untuk mencapai lokasi akhir. Dan yang dibutuhkan hanyalah satu bagian yang bergerak untuk melambat.

bviktor
sumber
Saya mengerti pernyataan Anda, kecuali untuk pelambatan di sisi server. Ini adalah server saya sendiri, dan ketika klien berada di pusat data yang berbeda (sekitar 1200km jauhnya) kecepatannya secara konsisten 95 Mbps. Bahkan jika klien menggunakan koneksi konsumen 100 Mb itu adalah 65 Mbps.
Hans Linkels
9
Bisakah Anda mendokumentasikan klaim Anda? "ISP sering memprioritaskan lalu lintas ke speedtest.net"
Soleil
1
@Soleil Tidak butuh terlalu banyak Googling: myce.com/news/…
MonkeyZeus
6
Sebuah ISP memprioritaskan lalu lintas speedtest mungkin sebagai pembuat mobil utama memalsukan tes emisi.
Barmar
3
Secara anekdot, saya pernah bisa 'memperbaiki' aliran Super Bowl yang gagap dengan mengirimkan lalu lintas ke speedtest.net berulang kali dari Raspberry Pi. Sepertinya mereka memprioritaskan seluruh koneksi saya selama ada lalu lintas speedtest - perbedaan malam dan siang. Tidak banyak bukti bahwa ISP melakukan hal-hal yang teduh, tetapi itu sesuatu.
Undo
7

wgetberikan ukuran praktis yang baik dari kecepatan. Tes Speedtest mungkin termasuk jenis paralelisme yang dapat menjelaskan angka yang lebih tinggi.

Untuk tes kecepatan rata-rata yang baik, saya pikir waktu untuk mengunduh setidaknya 90-120 detik (untuk mendapatkan rata-rata yang baik)

Romeo Ninov
sumber
Saya sedang bekerja menginstal komputer logging yang lebih kuat dan untuk meningkatkan ukuran file.
Hans Linkels
Bisakah Anda mengembangkan "semacam paralelisme"? Saya tidak melihat cara / alasan karena ada koneksi priori 1.
Soleil
1
@ Solil, IMHO mereka mengunduh beberapa file, tidak hanya satu. Anda dapat mengujinya dengan menjalankan sedikit wgetdan menjumlahkan kecepatan
Romeo Ninov
1
Saya bisa memparalelkan pengukuran saya, tetapi apa manfaatnya? Saya sudah menunjukkan bahwa klien lain mencapai kecepatan penuh. Perbedaannya adalah bahwa koneksi yang bermasalah memiliki latensi 180 ms. Koneksi cepat <10 ms. Apakah paralel akan mengurangi efek latensi? Hanya bertanya.
Hans Linkels
1
@RomeoNinov Saya memeriksa, tidak ada paralelisme seperti itu (speedtest.net). Satu file per unggahan dan satu per unduhan (masing-masing [1-2] MB).
Soleil
3

Salah satu alasannya adalah bahwa seringkali kecepatan maksimum tidak dapat dicapai hanya dengan satu koneksi TCP.

Speedtest.net baru-baru ini memperkenalkan mode koneksi tunggal. Coba ini dan lihat apakah ada bedanya.

Kemudian, untuk penggunaan unduhan misalnya aria2 dengan parameter untuk menggunakan beberapa koneksi dan membandingkan. misalnyaaria2c -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

Josef
sumber
2

Gunakan Fast.com Internet Speed ​​Test , ini adalah tes kecepatan berbasis Netflix yang berarti tidak dapat dibedakan oleh ISP dari Netflix sendiri.

Ini adalah tes yang lebih akurat daripada tes lain pada umumnya. Orang tidak akan khawatir tentang seberapa cepat halaman web dimuat, tetapi seberapa cepat buffer video karena peningkatan bandwidth yang diperlukan untuk menampilkan video.

ISP sering meningkatkan kecepatan berdasarkan domain yang disambungkan seseorang jika itu adalah tes kecepatan atau menggunakan port 8080. Sedangkan Netflix menggunakan port 80, port yang lebih lambat saat diprioritaskan.

Jonathan
sumber
1
"artinya tidak dapat dibedakan dengan ISP dari Netflix sendiri" - Itu tidak benar, ISP pasti dapat melihat permintaan DNS dan SNI pada koneksi HTTPS.
Kevin
@Kevin fast.com menghubungi server-server netflix untuk mengunduh, yang berarti ia mengemulasi video dari netflix itu sendiri. Meskipun saya akan memberi Anda ISP mungkin menangkap fakta bahwa menyambung ke situs tertentu yang kemudian menghubungi server berbasis Netflix memerlukan prioritas yang mirip dengan speedtest.net
Jonathan
Ini bukan ilmu roket. Yang harus mereka lakukan adalah menghapus Netflix selama beberapa menit atau jam setelah mereka melihat koneksi fast.com. Sisi positifnya, tentu saja, Anda bisa masuk ke fast.com untuk membuat Anda tidak diacak, lalu tutup tab dan tonton Netflix secara nyata.
Kevin
Secara pribadi saya menduga itu adalah ilmu komputer atau setidaknya terkait dengan itu daripada ilmu roket. Tampaknya beberapa ISP yang lebih besar (misalnya Bell) belum menangkap fast.com selama beberapa tahun terakhir. Apa pun cara menjalankan skrip di komputer Anda yang terhubung ke fast.com untuk meningkatkan kecepatan unduhan Anda setiap saat, jika pembatasan cukup buruk akan layak.
Jonathan
0

Apakah hanya saya atau tidak ada yang memperhatikan dia berkata Mbps dan daftar perintah wget "MB / s".

60mbp / s dan benar-benar mendapatkan 11.2Mb adalah normal.

Mbps dan MB / s adalah dua kecepatan yang berbeda.

"Megabit 1/8 lebih besar dari Megabita, artinya untuk mengunduh file 1 MB dalam 1 detik, Anda memerlukan koneksi 8 Mbps." Jadi 11mbx8 = 88mbps ... 11.2Mb sebenarnya bagus untuk pelaporan koneksi 60-70mbps.

Apakah orang yang memiliki memori kehilangan tenda ini. Anda tidak akan pernah mendapatkan 70mb / s dengan kecepatan tes 70Mbps

bla Chesley
sumber
Output dari wgetadalah Mb / s yang diterjemahkan menjadi Megabits / s . MB / s akan menerjemahkan ke MegaBytes / s . Cukup jalankan wgetperintah Anda sendiri dan verifikasi hasilnya.
Thomas
1
@james: Ya secara default, tetapi dalam OP, wgetperintah mencakup --report-speed=bitshasil Mb/syang mana Mbit/s. Berjalan tanpa --report-speed=bitsmemberi MB/syang diterjemahkan MByte/s. Perhatikan bdan B.
Thomas