Pourquoi l'écart entre Speedtest et Wget?

18

Mon client se plaint de faibles vitesses Internet. Lorsqu'elles sont mesurées avec Speedtest.net, les vitesses sont acceptables. Les téléchargements mesurés périodiquement représentent 10% à 30% de la vitesse nominale. Je ne peux pas l'expliquer.

Quelques antécédents. La connexion problématique se trouve sur l'une de ces îles des Caraïbes ensoleillées où l'internet rapide n'est pas le plus grand atout. Dernièrement, les vitesses Internet sont devenues décentes, jusqu'à 200 Mbps. Mais aller-retour ping vers (disons) Amsterdam est d'environ 180 ms.

Le client dispose d'une connexion fibre 100 Mbps. Lorsque nous effectuons un speedtest sur une machine Windows (speedtest.net) au CO ISP, nous obtenons 95 Mbps. En utilisant le même test de vitesse à Amsterdam, nous atteignons 60-70 Mbs. Entièrement acceptable.

Il y a quelque temps, j'ai installé un RasPi qui mouille périodiquement un fichier de l'un de mes serveurs à Amsterdam. Dans un centre de données, qui est directement connecté à AMS-IX. En utilisant cette commande:

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

Le fichier .txt est de 23 Mo octets. (En fait, c'est le seul mais le plus grand Mersenne Prime, 23e6 chiffres)

Lorsque je télécharge ce fichier sur le réseau problématique, wget signale ceci:

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]

C'est en même temps speedtest.net rapporte 60-70 Mbps.

Je sais que le Raspi a ses limites. Mais cette vitesse varie énormément. Une fois, le RasPi rapporte ces 11 Mbps, la prochaine fois 22 Mbps. Mais parfois aussi bas que 1,5 Mbps.

entrez la description de l'image ici

Lorsque je fais ce test avec un ordinateur portable vraiment puissant, les vitesses de pointe sont un peu plus élevées (jusqu'à 30 Mbps), mais montrent également les mêmes bas. Cela indique donc une limitation RasPi sur le côté haut, mais pas les 10 Mbps sur le côté bas.

J'ai émis exactement la même commande à partir d'un serveur à München, en Allemagne, dans un centre de données. Vitesse 96 Mbps.

Puis à partir d'une connexion fibre optique 100 Mbps aux Pays-Bas: 65 Mbps.

Ensuite, chez moi qui a un ADSL nominal de 10 Mbps. Speedtest affiche 10 Mbps. Wget donne 8,5 Mbps. Ce qui est égal dans mon livre.

Cela exclut toute limitation sur le serveur qui agit comme hôte pour le téléchargement du fichier.

Je ne m'attends pas à ce que quiconque puisse signaler la cause de la lenteur de la connexion chez le client. Mais quelqu'un peut-il expliquer la différence entre speedtest.net et wget?

Y a-t-il quelque chose que le speedtest ignore ou mesure-t-il uniquement les pics? Ou est-ce que wget est sérieusement influencé par les longs temps de ping?

Je pense que le test wget donne la vitesse réelle et efficace, tandis que le test de vitesse consiste principalement à afficher la vitesse annoncée.

Hans Linkels
la source
Une autre façon de vérifier la vitesse est de le faire ssh personal-server cat /dev/zero | pv > /dev/null, sur un serveur personnel dont vous savez que le taux n'est pas limité à être plus lent que la vitesse que vous attendez.
JoL
J'ai survolé votre question. Et il semble que vous ayez une large bande passante et peut-être un scénario de retard aller-retour significatif également connu sous le nom de «réseau long fat». J'ai personnellement vécu ce genre de chose et l'ai résolu en ouvrant de nombreuses connexions (j'ai utilisé rsync). Pouvez-vous essayer d'ouvrir de nombreuses instances de wget (essayez 5, 10, 20)? La page Wikipedia est: produit de retard de bande passante.
Trevor Boyd Smith
Rapports Wget en octets par défaut: [james @ lamia root] $ wget -O / dev / null 10.32.48.1/t1 / dev / null 100% [================== ====>] 100,00 Mo 112 Mo / s en 0,9 s [james @ lamia root] $ wget --report-speed = bits -O / dev / null 10.32.48.1/t1 / dev / null 100% [=== ==================>] 100.00M 932Mb / s en 0.9s
james
Envisagez d'exécuter un serveur iperf pour tcp et un second pour udp sur votre machine hébergée sur DC. Ensuite, dans le cadre de la tâche cron, appelez un test de votre client et voyez comment les vitesses se comparent à celles du http.
Criggie
De quel type de fichier s'agit-il de toute façon? Est-il compressible et le serveur prend-il en charge la compression http? Bien que vous ne puissiez pas résoudre les problèmes de bande passante, vous pourrez peut-être réduire le fichier.
Salman A

Réponses:

16

En plus des autres raisons signalées, les connexions TCP ne fonctionnent pas bien avec des fichiers volumineux lorsque le produit de retard de bande passante devient volumineux.

Comme sur une connexion par ailleurs rapide à une île.

Voir l'entrée de Wikipedia sur le réglage TCP .

Speedtest peut donc vider un petit fichier via la connexion à 95 Mo / s, mais wgetne peut obtenir que 10 Mo / s sur un fichier de 20 Mo.

Andrew Henle
la source
2
C'est une nouvelle connaissance pour moi. Très bien. En effet, le produit retard de bande passante est élevé (2,25 Mo si j'ai calculé correctement). Un rapide coup d'œil a montré un tampon par défaut de 87 Ko et un maximum de 3,5 Mo. (Je suppose que les octets ne sont pas des bits). Je dois approfondir cela pour mieux l'apprécier. Si, en combinaison, speedtest télécharge beaucoup de petits fichiers et enregistre la vitesse maximale à ce sujet, cela explique beaucoup.
Hans Linkels le
21

Les FAI priorisent souvent le trafic vers speedtest.net afin qu'ils puissent se vanter de la rapidité de leurs connexions, alors qu'en réalité, ils ne fournissent pas autant de bande passante. Ils savent parfaitement que la plupart des utilisateurs ne vérifieront ce site que pour confirmation.

Vous devez également garder à l'esprit que la vitesse de transfert dépend à la fois du client et du serveur. Dans le monde d'aujourd'hui, la plupart des serveurs étranglent d'une manière ou d'une autre.

Enfin, il est inutile de s'attendre à une bande passante stable pour les connexions à l'étranger. Il n'y a rien de tel. Il doit passer par un nombre infini de commutateurs, de fibres, de centres de données pour atteindre l'emplacement final. Et il suffit d' une seule partie mobile pour ralentir.

bviktor
la source
Je comprends vos déclarations, à l'exception de la limitation côté serveur. Il s'agit de mon propre serveur et lorsque le client se trouve dans un autre centre de données (à environ 1200 km), la vitesse est toujours de 95 Mbps. Même si le client est sur une connexion client de 100 Mb, il est de 65 Mbps.
Hans Linkels le
9
Pouvez-vous documenter votre réclamation? "Les FAI priorisent souvent le trafic vers speedtest.net"
Soleil
1
@Soleil n'a pas pris trop de temps sur Google: myce.com/news/…
MonkeyZeus
6
Un FAI priorisant le trafic de speedtest est aussi probable qu'un grand constructeur automobile simulant des tests d'émissions.
Barmar
3
Pour l'anecdote, j'ai été en mesure de `` réparer '' un flux Super Bowl en bégayant en envoyant du trafic vers speedtest.net à plusieurs reprises à partir d'un Raspberry Pi. On aurait dit qu'ils donnaient la priorité à toute ma connexion tant qu'il y avait du trafic speedtest - différence de jour et de nuit. Ce n'est pas beaucoup de preuves que les FAI font des trucs louches, mais c'est quelque chose.
Annuler
7

wgetdonner une bonne mesure pratique de la vitesse. Les tests de Speedtest incluent probablement une sorte de parallélisme qui peut expliquer des nombres plus élevés.

Pour un bon test de vitesse moyenne, je pense que le temps de téléchargement devrait être d'au moins 90-120 secondes (pour obtenir une bonne moyenne)

Roméo Ninov
la source
Je travaille à l'installation d'un ordinateur de journalisation plus puissant et à augmenter la taille du fichier.
Hans Linkels, le
Pouvez-vous développer une "sorte de parallélisme"? Je ne vois aucun moyen / raison car il y a a priori 1 connexion.
Soleil
1
@Soleil, à mon humble avis, ils téléchargent quelques fichiers, pas un seul. Vous pouvez le tester en wget
exécutant
1
Je pourrais paralléliser ma mesure, mais quel est l'avantage? J'ai déjà démontré que d'autres clients atteignent leur pleine vitesse. La différence est que la connexion problématique a une latence de 180 ms. Les connexions rapides <10 ms. Le parallèle diminuerait-il les effets de latence? Je ne faisais que demander.
Hans Linkels
1
@RomeoNinov J'ai vérifié, il n'y a pas un tel parallélisme (speedtest.net). Un fichier par téléchargement et un par téléchargement ([1-2] Mo chacun).
Soleil
3

Une raison pourrait être que souvent la vitesse maximale ne peut pas être atteinte par une seule connexion TCP.

Speedtest.net a récemment introduit un mode de connexion unique. Essayez ceci et voyez si cela fait une différence.

Ensuite, pour le téléchargement, utilisez par exemple aria2 avec des paramètres pour utiliser plusieurs connexions et comparer. par exemplearia2c -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
la source
2

Utilisez Fast.com Internet Speed ​​Test , c'est un test de vitesse basé sur Netflix, ce qui signifie qu'il ne peut pas être différencié par les FAI de Netflix lui-même.

Il s'agit d'un test plus précis que tout autre test en général. Les gens ne seront pas inquiets de la vitesse de chargement d'une page Web, mais plutôt de la vitesse à laquelle le tampon des vidéos est dû à l'augmentation de la bande passante nécessaire pour afficher une vidéo.

Les FAI augmentent souvent les vitesses en fonction du domaine auquel quelqu'un se connecte s'il s'agit d'un test de vitesse ou en utilisant le port 8080. Alors que Netflix utilise le port 80, un port plus lent lorsqu'il est priorisé.

Jonathan
la source
1
"ce qui signifie qu'il ne peut pas être différencié par les FAI de Netflix lui-même" - C'est faux, le FAI peut certainement voir à la fois la demande DNS et le SNI sur la connexion HTTPS.
Kevin
@Kevin fast.com contacte les serveurs netflix à télécharger, ce qui signifie qu'il émule les vidéos de netflix lui-même. Bien que je vous accorde que les FAI peuvent comprendre que la connexion à ce site spécifique qui contacte ensuite les serveurs basés sur Netflix nécessite une priorisation similaire à speedtest.net
Jonathan
Ce n'est pas vraiment sorcier. Tout ce qu'ils ont à faire est de débloquer Netflix pendant quelques minutes ou heures après avoir vu une connexion fast.com. L'avantage, bien sûr, est que vous pouvez aller sur fast.com pour vous libérer de la limitation, puis fermer l'onglet et regarder Netflix pour de vrai.
Kevin
Personnellement, je soupçonne que c'est de l'informatique ou du moins lié à elle plutôt que de la science des fusées. Il semble que certains des plus grands FAI (par exemple Bell) n'ont pas intégré fast.com au cours des dernières années. Quoi qu'il en soit, l'exécution d'un script sur votre ordinateur qui se connecte à fast.com afin d'augmenter votre vitesse de téléchargement de temps en temps si la limitation est suffisamment mauvaise serait viable.
Jonathan
0

Est-ce juste moi ou personne n'a remarqué qu'il a dit Mbps et la liste de commandes wget "MB / s".

60 Mbps / s et obtenir réellement 11,2 Mo est normal.

Mbps et MB / s sont deux vitesses différentes.

"un mégabit est 1/8 de la taille d'un mégaoctet, ce qui signifie que pour télécharger un fichier de 1 Mo en 1 seconde, vous aurez besoin d'une connexion de 8 Mbps." Donc 11mbx8 = 88mbps ... 11,2Mb est en fait bon pour un rapport de connexion 60-70mbps.

Les gens qui ont de la mémoire perdent-ils ce sentiment. Vous n'obtiendrez jamais 70 Mo / s avec une vitesse de test de vitesse de 70 Mbps

blah Chesley
la source
La sortie de wgetest Mb / s qui se traduit en mégabits / s . Mo / s se traduirait en mégaoctets / s . Exécutez simplement votre propre wgetcommande et vérifiez le résultat.
Thomas
1
@james: Oui par défaut, mais dans OP la wgetcommande inclut les --report-speed=bitsrésultats dans Mb/slesquels se trouve Mbit/s. Courir sans --report-speed=bitsdonner MB/squi se traduit par MByte/s. Notez le bet B.
Thomas