Neden Speedtest ve Wget arasındaki tutarsızlık?


18

Müşterim düşük internet hızlarından şikayet ediyor. Speedtest.net ile ölçüldüğünde hızlar kabul edilebilir. Periyodik olarak ölçülen indirmeler, nominal hızın% 10 ila% 30'udur. Bunu açıklayamam.

Biraz arka plan. Sorunlu bağlantı, hızlı internetin en büyük varlık olmadığı güneşli Karayip adalarından birinde. Son zamanlarda internet hızları 200 Mbps'ye kadar iyi oldu. Ancak Amsterdam'a (diyelim ki) ping turu yaklaşık 180 ms'dir.

Müşterinin 100 Mbps fiber bağlantısı var. ISP CO'ya bir Windows makinesinde (speedtest.net) bir hız testi yaparken 95 Mbps elde ederiz. Amsterdam için aynı hız testini kullanırken 60-70 Mbs'e ulaşıyoruz. Tamamen kabul edilebilir.

Bir süre önce, Amsterdam'daki sunucularımdan birinden düzenli olarak bir dosya yazan bir RasPi kurdum. Doğrudan AMS-IX'a bağlı bir veri merkezinde. Bu komutu kullanarak:

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

.Txt dosyası 23 MBayt sayıdır. (Aslında tek ama en büyük Mersenne Prime, 23e6 basamaklı)

Bu dosyayı sorunlu ağa indirdiğimde, wget bunu rapor eder:

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]

Bu aynı zamanda speedtest.net'in 60-70 Mbps olduğunu bildiriyor.

Raspi'nin sınırlamaları olduğunu biliyorum. Ancak bu hız çılgınca değişiyor. Bir kez RasPi bunu 11 Mbps, bir dahaki sefere 22 Mbps bildirdi. Ancak bazen 1,5 Mbps kadar düşük.

resim açıklamasını buraya girin

Bu testi gerçekten güçlü bir dizüstü bilgisayarla yaptığımda, en yüksek hızlar biraz daha yüksek (30 Mbps'ye kadar), ancak aynı düşüklükleri de gösteriyor. Bu nedenle, yüksek tarafta bir RasPi sınırlaması olduğunu gösterir, ancak düşük tarafta 10 Mbps'yi göstermez.

Aynı komutu Almanya'nın München kentindeki bir sunucudan veri merkezinde yayınladım. Hız 96 Mbps.

Daha sonra Hollanda'da 100 Mbps fiber bağlantıdan: 65 Mbps.

Sonra, nominal 10 Mbps ADSL olan evimde. Speedtest 10 Mbps gösterir. Wget 8,5 Mbps verir. Bu benim kitabımda eşit.

Bu, sunucuda dosya indirme için ana bilgisayar görevi gören herhangi bir sınırlamayı engeller.

Ben hiç kimsenin müşteri tesislerinde bağlantının yavaşlığının nedenine işaret edebileceğini sanmıyorum. Ancak kimse speedtest.net ve wget arasındaki tutarsızlığı açıklayabilir mi?

En hızlı olanın görmezden geldiği bir şey mi var, yoksa sadece zirveleri mi ölçüyor? Yoksa wget uzun ping sürelerinden ciddi şekilde etkileniyor mu?

Wget testinin gerçek, etkili hızı verdiğini hissediyorum, en hızlısı ise reklamı yapılan hızı göstermek.


Hızı kontrol etmenin bir başka yolu ssh personal-server cat /dev/zero | pv > /dev/null, bildiğiniz bir kişisel sunucuda, hızın beklediğiniz hızdan daha yavaş olmasıyla sınırlı olmadığını bilmektir.
JoL

Sorunu kaçırdım. Ve büyük bir bant genişliğiniz ve belki de "uzun yağ ağı" olarak da bilinen önemli gidiş-dönüş gecikme senaryosu olduğu anlaşılıyor. Bu tür şeyleri şahsen yaşadım ve birçok bağlantı açarak çözdüm (rsync kullandım). Birçok wget örneği açmayı deneyebilir misiniz (5, 10, 20 deneyin)? Wikipedia sayfası: bant genişliği gecikme ürünü.
Trevor Boyd Smith

Raporları varsayılan olarak bayt cinsinden wget: [james @ lamia root] $ wget -O / dev / null 10.32.48.1/t1 / dev / null% 100 [================= ====>] 0,9 saniyede 100,00 milyon 112 MB / sn [james @ lamia kökü] $ wget --report-speed = bit -O / dev / null 10.32.48.1/t1 / dev / null% 100 [=== ==================>] 0.9s 100.00M 932Mb / s
james

DC tarafından barındırılan makinenizde tcp için bir iperf sunucusu ve udp için bir saniye çalıştırmayı düşünün . Daha sonra cron işinin bir parçası olarak müşterinizden bir test çağırın ve hızların http get ile nasıl karşılaştırıldığını görün.
Criggie

Zaten ne tür bir dosya? Sıkıştırılabilir mi ve sunucu http sıkıştırmasını destekliyor mu? Bant genişliği sorunlarını düzeltemeseniz de dosyayı küçültebilirsiniz.
Salman A

Yanıtlar:


16

Yayınlanan diğer nedenlere ek olarak, bant genişliği gecikme ürünü büyüdüğünde TCP bağlantıları büyük dosyalarla iyi çalışmaz .

Bir adaya başka türlü hızlı bir bağlantıda olduğu gibi.

Bkz. Wikipedia'nın TCP ayarına girişi .

Speedtest 95 mb / sn bağlantı üzerinden küçük bir dosyayı dökebilir, ancak wget20 MB dosyada yalnızca 10 mb / sn alabilir.


2
Bu benim için yeni bir bilgi. Çok iyi. Gerçekten de, bant genişliği geciktirme ürünü yüksektir (doğru hesaplarsam 2.25 MB). Hızlıca bakıldığında varsayılan tampon 87kB ve maksimum 3.5 MB olarak gösterildi. (Bayt'ın bit olmadığını varsayıyorum). Daha iyi değerlendirebilmek için bu konuya daha derinlemesine dalmam gerekiyor. Kombine olarak speedtest, çok sayıda küçük dosyayı indirir ve bu dosyadaki maksimum hızı kaydederse, çok açıklar.
Hans Linkels

21

İSS'ler genellikle bağlantılarının ne kadar hızlı olduğunu övünmek için speedtest.net trafiğine öncelik verir, gerçekte bu kadar bant genişliği sağlamazlar. Çoğu kullanıcının bu siteyi yalnızca onay için kontrol edeceğini çok iyi bilmektedirler.

Ayrıca, aktarım hızının hem istemciye hem de sunucuya bağlı olduğunu unutmayın. Günümüz dünyasında çoğu sunucu şu ya da bu şekilde kısılır.

Son olarak, yurtdışı bağlantılar için istikrarlı bir bant genişliği beklemek anlamsızdır. Böyle bir şey yok. Nihai konuma ulaşmak için sonsuz sayıda anahtar, fiber, veri merkezi üzerinden geçmelidir. Ve tek gereken yavaşlamak için sadece bir hareketli parça.


Sunucu tarafında daraltma dışında ifadelerinizi anlıyorum. Bu benim kendi sunucum ve istemci farklı bir veri merkezinde (yaklaşık 1200km) olduğunda, hız sürekli 95 Mbps'dir. İstemci 100 Mb tüketici bağlantısında olsa bile 65 Mbps'dir.
Hans Linkels

9
İddia ettiğinizi belgeleyebilir misiniz? "İSS'ler genellikle speedtest.net trafiğine öncelik veriyor"
Soleil

1
@Soleil Çok fazla almadım
MonkeyZeus

6
En hızlı trafiğe öncelik veren bir İSS, emisyon testlerini taklit eden büyük bir otomobil üreticisi kadar olasıdır.
Barmar

3
Anekdot olarak, bir zamanlar ahududu Pi'den tekrar tekrar speedtest.net'e trafik göndererek kekemelik Süper Kase akışını 'düzeltebiliyordum'. Gece ve gündüz farkı - mevcut en hızlı trafik olduğu sürece benim tüm bağlantıya öncelik vermiş gibi görünüyordu. ISS'lerin gölgeli şeyler yaptığına dair çok fazla kanıt yok, ama bu bir şey.
geri alma

7

wgethızın iyi pratik ölçüsünü verir. Speedtest testleri muhtemelen daha yüksek sayıları açıklayabilen bir çeşit paralellik içerir.

İyi bir ortalama hız testi için, indirme süresinin en az 90-120 saniye olması gerektiğini düşünüyorum (iyi bir ortalama elde etmek için)


Daha güçlü bir günlük bilgisayarı yüklemek ve dosya boyutunu artırmak için çalışıyorum.
Hans Linkels

"Bir çeşit paralellik" geliştirebilir misiniz? 1. a priori 1 bağlantısı olduğu için hiçbir yol / sebep görmüyorum.
Soleil

1
@Soleil, IMHO sadece birkaç dosya indirmiyorlar. Birkaç koşarak test edebilir wgetve hızı
toplayabilirsiniz

1
Ölçümümü paralel hale getirebilirdim, ama faydası nedir? Diğer müşterilerin tam hıza ulaştığını zaten göstermiştim. Fark, sorunlu bağlantının 180 ms gecikme süresine sahip olmasıdır. Hızlı bağlantılar <10 ms. Paralel gecikme etkilerini azaltır mı? Sadece soruyorum.
Hans Linkels

1
@RomeoNinov Kontrol ettim, böyle bir paralellik yok (speedtest.net). Yükleme başına bir dosya ve indirme başına bir dosya (her biri [1-2] MB).
Soleil

3

Bunun nedenlerinden biri, maksimum hıza yalnızca tek bir TCP bağlantısıyla erişilememesidir.

Speedtest.net yakın zamanda tek bir bağlantı modu başlattı. Bunu deneyin ve bir fark yaratıp yaratmadığına bakın.

Daha sonra, indirme için birden fazla bağlantı kullanmak ve karşılaştırmak için parametrelerle birlikte aria2 kullanın. Örneğinaria2c -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


2

Fast.com İnternet Hız Testini kullanın , bu Netflix tabanlı bir hız testidir, yani ISP'ler tarafından Netflix'in kendisinden ayırt edilemez.

Bu, genel olarak diğer testlerden daha doğru bir testtir. İnsanlar bir web sayfasının ne kadar hızlı yüklendiği konusunda endişelenmeyecek, aksine bir videoyu görüntülemek için gereken artan bant genişliği nedeniyle videoların ne kadar hızlı arabelleğe alınacağından endişe etmeyeceklerdir.

İSS'ler genellikle hız testi veya 8080 numaralı bağlantı noktasını kullanan bir kişinin bağlandığı etki alanına göre hızları artırır. Oysa Netflix, öncelik sırasına göre daha yavaş bir bağlantı noktası olan 80 numaralı bağlantı noktasını kullanır.


1
"ISP'ler tarafından Netflix'in kendisinden ayırt edilemeyeceği anlamına gelir" - Bu yanlıştır, ISP HTTPS bağlantısındaki DNS talebini ve SNI'yi kesinlikle görebilir.
Kevin

@Kevin fast.com, indirmek için netflix sunucularıyla iletişim kurar, yani netflix'in kendisinden video öykünür. Her ne kadar size ISS'ler versem de, daha sonra Netflix tabanlı sunucularla iletişim kuran belirli bir siteye bağlanmanın speedtest.net'e benzer önceliklendirme gerektirdiğini fark edebilir
Jonathan

Tam olarak roket bilimi değil. Tek yapmaları gereken bir fast.com bağlantısı gördükten sonra Netflix'i birkaç dakika veya saat boyunca kontrolsüz bırakmaktır. Üstte, elbette, kendinizi kontrolsüz hale getirmek için fast.com'a gidebilir, ardından sekmeyi kapatıp Netflix'i gerçek olarak izleyebilirsiniz.
Kevin

Şahsen ben bunun bilgisayar bilimi olduğundan ya da en azından roket bilimi yerine onunla ilgili olduğundan şüpheleniyorum. Bazı büyük ISS'lerin (örneğin Bell) son birkaç yıldır fast.com'a yakalanmadığı anlaşılıyor. Her iki şekilde de, hız azaltma yeterince kötüyse indirme hızınızı artırmak için bilgisayarınızda fast.com'a bağlanan bir komut dosyası çalıştırmak uygun olacaktır.
Jonathan

0

Sadece ben mi yoksa kimse Mbps ve wget komut listesi "MB / s" dedi fark etmedi.

60mbp / s ve aslında 11.2Mb almak normaldir.

Mbps ve MB / s iki farklı hızdır.

"Megabit, Megabayt kadar 1/8 büyüklüğünde, yani 1 MB'lik bir dosyayı 1 saniyede indirmek için 8 Mbps'lik bir bağlantıya ihtiyacınız olacak." Yani 11mbx8 = 88mbps ... 11.2Mb aslında bir bağlantı raporlaması için iyi 60-70mbps.

Hafızası olan insanlar bunu tente kaybediyor mu? Asla 70Mbps hız hızında 70mb / s elde edemezsiniz


Çıktısı wgetolan Mb / s çevirir Megabit / s . MB / s , MegaBytes / s'ye çevrilir . Sadece kendi wgetkomutunu çalıştır ve sonucu doğrula.
Thomas

1
@james: Varsayılan olarak evet, ancak OP'de wgetkomut --report-speed=bitshangi sonuçların Mb/shangisi olduğunu içerir Mbit/s. Olmadan Koşu --report-speed=bitsverir MB/sçevirir MByte/s. Not bve B.
Thomas
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.