Question Comment testez-vous la vitesse du réseau entre deux boîtes?


J'ai un réseau gigabit installé dans ma maison et quelques boîtes basées sur Ubuntu. Par curiosité, je voudrais vérifier la vitesse entre les deux boîtes. Je n'ai pas de problèmes de vitesse ou quoi que ce soit, c'est vraiment le geek en moi qui est curieux. De plus, les résultats me permettront peut-être de savoir s'il y a place à amélioration ou si j'ai quelque chose de mal configuré.

Alors, comment testez-vous correctement la vitesse du réseau entre les boîtes Ubuntu?


141
2017-10-17 17:04


origine




Réponses:


j'utilise iperf. Il s’agit d’un serveur client dans la mesure où vous l’exécutez en mode serveur à une extrémité et vous connectez à un autre ordinateur situé de l’autre côté du réseau.

Une des deux machines fonctionnent:

sudo apt-get install iperf

Nous allons commencer un iperf serveur sur l'une des machines:

iperf -s

Et puis sur l'autre ordinateur, raconte iperf se connecter en tant que client:

iperf -c <address of other computer>

Sur la machine client, vous verrez quelque chose comme ceci:

oli@bert:~$ iperf -c tim
------------------------------------------------------------
Client connecting to tim, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.4 port 37248 connected with 192.168.0.5 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.04 GBytes    893 Mbits/sec

Bien sûr, si vous utilisez un pare-feu sur le serveur, vous devez autoriser les connexions sur le port 5001 ou modifier le port avec le -p drapeau.


Vous pouvez faire à peu près la même chose avec le vieux simple nc (netcat) si vous le souhaitez. Sur la machine serveur:

nc -vvlnp 12345 >/dev/null

Et le client peut canaliser un gigaoctet de zéros à travers dd au dessus de nc tunnel.

dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345

Comme démod:

$ dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Connection to 10.10.0.2 12345 port [tcp/*] succeeded!
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 9.11995 s, 118 MB/s

Le timing est donné par dd mais il devrait être suffisamment précis car il ne peut sortir que le tuyau le prend rapidement. Si vous n'êtes pas satisfait de cela, vous pouvez emballer le tout dans un time appel.

Rappelez-vous que le résultat est en mégaoctets alors multipliez-le par 8 pour obtenir un mégamorceaux-pour la seconde vitesse. La démo ci-dessus tourne à 944 Mbps.


218
2017-10-17 17:15



Vous avez toutes les réponses à mes questions! Mon réseau n'est apparemment pas configuré et votre seul transfert à 714 Mo et la bande passante de 598 Mbits / s. Dunno peut se pencher là-dessus dans le futur. Merci. - Jacob Schoen
En toute justice, l’autre est un seul interrupteur (et 20 mètres de cat5e) et il n’ya pas de congestion. 600mbps est toujours assez rapide. - Oli♦
C'est génial, mais je n'ai pas d'accès root au serveur. - Geoff
Essayez -P 10. Mon résultat avec une seule connexion est similaire à jschoens, mais avec 3+ connexions parallèles, il pousse constamment 920Mbps. - wujj123456
@CMCDragonkai Vous ne devriez probablement pas tester des ressources qui ne vous appartiennent pas. Les tests lourds de bande passante peuvent avoir un impact sur la stabilité à court terme. - Oli♦


Identique à la recommandation d'Oli pour iperf. Je veux juste ajouter plusieurs points:

  1. Il existe également des clients Windows qui permettent d'effectuer des tests sur plusieurs sites. plates-formes.
  2. -t <secondes> change la longueur du test. -P <n> modifie le nombre de connexions simultanées. Par exemple, iperf -c [IP cible] -P 10 -t 30 teste 10 connexions ensemble pendant 30 secondes et donne des résultats agrégés avec 10 vitesses de connexion distinctes.
  3. Vous n'avez pas besoin de sudo. Vous pouvez simplement télécharger le binaire à http://iperf.fr/. Ça devrait marcher. Téléchargez-le avec wget, le rendre exécutable avec chmod, et vous pouvez directement lancer le binaire. Cela fonctionne parfaitement.

J'ai trouvé que, en utilisant les paramètres par défaut, la vitesse de connexion unique fluctue considérablement. Cependant, avec 3+ connexions parallèles, les résultats sont plus cohérents sur mon commutateur de gigaoctets. (systématiquement à 910-920 Mbps)


19
2018-05-14 07:33





En utilisant ce script Vous pouvez facilement tester la vitesse de connexion entre votre ordinateur et un hôte distant. Exemple d'utilisation:

$ scp-speed-test.sh user@remote_host 80000
  • user@remote_host est votre hôte de destination (vous devez avoir ssh-access à cet hôte)
  • 80000 est la taille approximative du fichier de test (en kbs), qui sera reçu à l'hôte distant. Ce n'est pas un argument obligatoire.

6
2017-08-06 19:40



Cela semble tester la vitesse de l'application SCP, qui sera inférieure à celle d'un test sur une couche inférieure. Par exemple, nc utilise L4. Bien sûr, cela est génial si vous vous souciez davantage de la vitesse de SCP. - sudo
A des problèmes: Ce script écrit et lit un fichier sur le disque - c'est plus lent que ram, ce qui peut être un ralentissement artificiel. En outre, envoie uniquement des zéros, au cas où ils seraient compressés, ce serait un gros accélérateur artificiel. Si vous voulez des données pseudo-aléatoires, n'utilise pas /dev/random (il peut bloquer) ou urandom (Les commentaires de liens ont suggéré que) ils peuvent aussi être très lents, utilisez plutôt un dm-crypt (Voir la FAQ de cryptsetup 2.19 Comment puis-je effacer un appareil avec un caractère aléatoire de type cryptographique?) peut-être avec un fichier en RAM. - Xen2050


Si vous souhaitez tester votre réseau Ethernet à un niveau inférieur, vous pouvez utiliser Etherate, un outil de test Ethernet CLI Linux gratuit:

https://github.com/jwbensley/Etherate

Le lancer dans le mixage comme des outils comme iPerf (qui sont très bons!) Fonctionnent sur IP et TCP ou UDP. Tests Etherate directement sur Ethernet / OSI layer 2.


2
2018-03-26 20:37





Il existe également d’autres outils en ligne de commande pour l’analyse de la bande passante entre deux hôtes:

nuttcp

server$ nuttcp -S
client$ nuttcp -v -v -i1 1.1.1.1 ;# 1.1.1.1 is server's address

nepim

 server$ nepim
 client$ nepim -d -c 1.1.1.1 ;# 1.1.1.1 is server's address

goben

 server$ goben
 client$ goben -hosts 1.1.1.1 ;# 1.1.1.1 is server's address

2
2018-02-12 20:15



Comment sont-ils différents les uns des autres, et de iperf? Travaillent-ils de la même façon, que font-ils? nuttcp est dans Debian et apparemment "nuttcp est basé sur nttcp, qui à son tour a été amélioré par quelqu'un chez Silicon Graphics (SGI) sur le ttcp original, écrit par Mike Muuss à BRL avant décembre 1984, pour comparer les performances des piles TCP à UC Berkeley et BBN pour aider DARPA à décider quelle version placer dans la première version de BSD Unix. " - Xen2050


Comme je l’ai souligné dans mon commentaire au mieux, cette solution ne suffit pas car le client / serveur n’est pas optimisé à ... écraser chaque bit de vitesse

ma solution:

faire un disque virtuel des deux côtés (par conséquent, vous n'êtes pas limité par la vitesse de stockage et je vous suggère de les utiliser avec ramfs, pas avec tmpfs, donc ils n'iront pas dans swap ... faites juste attention de ne pas laisser au moins 512M de mémoire libre pour le système, c'est OBLIGATOIRE si vous avez giga ethernet, à cette vitesse, même les disques SSD peuvent ralentir les choses) installer apache sur le serveur, puis créer un lien vers ramdisk, créer quelques gros fichiers sur le disque virtuel (100M-1G, vous pouvez les créer avec dd de / dev / random ou copier si vous en avez à portée de main) puis aller côté client et les télécharger (également sur le disque virtuel de ce côté) avec un programme de téléchargement avancé, j'ai utilisé lftp

eh bien, la différence était majeure, de 75 Mbps rapporté par iperf et 9,5M / s netcat

à 11.18 M / s avec ma solution:

1591129421 bytes transferred in 136 seconds (11.18M/s)

0
2017-07-27 07:24





Il est facile de brancher votre ordinateur sur la première case, branchez l’autre dans la première case. Ensuite, à partir de votre ordinateur, cochez la première case, enregistrez le résultat, exécutez une commande ping sur l’autre et effectuez la soustraction.


-3
2017-10-17 17:16



Cela montre que la latence du réseau n'est qu'une partie de la vitesse. Par exemple, la connexion 3G de mon téléphone a une latence énorme (100-300ms) mais elle peut toujours gérer un débit de 5 Mbps. - Oli♦
Pas de ma faute s'il demandait de la vitesse mais du débit souhaité. - Nyamiou The Galeanthrope
La latence est le temps de réaction, pas la vitesse. - wullxz