Je l'utilise iperf
. Il s’agit d’un arrangement client-serveur en ce sens que vous l’exécutez en mode serveur d’un côté et que vous vous connectez à son ordinateur depuis un autre ordinateur de l’autre côté du réseau.
Une des deux machines fonctionne:
sudo apt-get install iperf
Nous allons démarrer un iperf
serveur sur l'une des machines:
iperf -s
Et puis sur l’autre ordinateur, dites iperf
de vous connecter en tant que client:
iperf -c <address of other computer>
Sur l'ordinateur 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 l' -p
indicateur.
Vous pouvez faire à peu près la même chose avec plain old nc
(netcat) si vous êtes incliné de cette façon. Sur la machine serveur:
nc -vvlnp 12345 >/dev/null
Et le client peut diriger un gigaoctet de zéros à travers dd
le nc
tunnel.
dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Comme demod:
$ 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 doit être suffisamment précis car il ne peut sortir que si le tuyau le prend rapidement. Si vous n'êtes pas satisfait de cela, vous pouvez tout inclure dans un time
appel.
Rappelez-vous que le résultat est en méga- octets , multipliez-le par 8 pour obtenir une vitesse en méga bits par seconde. La démo ci-dessus fonctionne à 944 Mbps.
Identique à la recommandation d'Oli pour iperf. Je veux juste ajouter plusieurs points:
-t <seconds>
change la longueur du test. change le nombre de connexions simultanées. Par exemple, teste 10 connexions ensemble pendant 30 secondes et donne des résultats agrégés ainsi que 10 vitesses de connexion distinctes.-P <n>
iperf -c [target IP] -P 10 -t 30
wget
, rendez-le exécutablechmod
, et vous pouvez exécuter directement le binaire. Ça fonctionne parfaitement.J'ai constaté que, avec les paramètres par défaut, la vitesse de connexion unique fluctuait un peu. Cependant, avec plus de 3 connexions parallèles, les résultats sont plus cohérents sur mon commutateur gigaoctet. (toujours @ 910-920Mbps)
la source
En utilisant ce script, vous pouvez facilement tester la vitesse de connexion entre votre ordinateur et un hôte distant. Exemple d'utilisation:
user@remote_host
est votre hôte de destination (vous devez avoir un accès ssh à cet hôte)80000
est la taille approximative du fichier de test (en kbs), qui sera reçu par l'hôte distant. Ce n'est pas un argument obligatoire.la source
/dev/random
(elles peuvent bloquer) ouurandom
(les commentaires de liens suggérés) peuvent être très lentes aussi, utilisez plutôt un cryptage dm (Voir la FAQ de cryptsetup 2.19. Comment puis-je effacer un périphérique avec qualité aléatoire? ) peut-être avec un fichier en RAM.Si vous souhaitez tester votre réseau local Ethernet à un niveau inférieur, vous pouvez utiliser Etherate, un outil de test Ethernet gratuit pour Linux CLI:
https://github.com/jwbensley/Etherate
Ajoutez-y des outils comme iPerf (qui sont très bons!) Fonctionnent sur IP, TCP ou UDP. Etherate teste directement sur la couche 2 Ethernet / OSI.
la source
La commande ci-dessous ne nécessite pas de paquet supplémentaire, mais un accès SSH:
Exemple de sortie:
La commande imprime un fichier factice de 3 Go (1 000 ^ 3 octets) plein de zéros sur la sortie standard du serveur distant, qui est imprimé (transféré) via SSH sur la sortie standard du serveur local, puis redirigé vers
/dev/null
(c'est- à -dire ignoré). Vous pouvez même voir la progression du test lors de son exécution.Certainement pas aussi précis que d'autres outils, mais mon cas d'utilisation était de déboguer un processus de sauvegarde dans lequel je voulais tester si la vitesse du réseau posait problème sans installer de paquet supplémentaire.
la source
Il existe également d'autres outils de ligne de commande utiles pour l'analyse comparative de la bande passante entre deux hôtes:
nuttcp
nepim
goben
la source
comme je l’ai souligné dans mon commentaire, cette solution n’est pas suffisante, car le client / serveur n’est pas optimisé pour ... tirer le maximum de vitesse
ma solution:
créez un disque mémoire 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 créer avec ramfs, pas avec les fichiers tmpfs, afin qu'ils ne soient pas échangés ... veillez à ne pas laisser au moins 512 millions de mémoire libre pour le système, cela est OBLIGATOIRE si vous avez giga ethernet, à cette vitesse même les SSD peuvent ralentir les choses) installez apache sur le serveur, puis créez un lien vers le disque mémoire, créez quelques fichiers volumineux sur le disque (100M-1G, vous pouvez les créer avec dd de / dev / random ou copier si vous en avez) puis allez côté client et téléchargez-les (également sur le disque mémoire de ce côté-là) avec un programme de téléchargement avancé, que j'ai utilisé
lftp
eh bien, la différence était majeure, à partir de 75 Mbps rapporté par iperf et netcat 9.5M / s
à 11.18M / s avec ma solution:
la source
Il est facile de brancher votre ordinateur sur la première boîte, de connecter l’autre boîte à la première. Puis, à partir de votre ordinateur, envoyez une requête ping à la première boîte, enregistrez le résultat, envoyez une requête ping à l’autre boîte et exécutez la soustraction.
la source