Vraag Hoe test je de netwerksnelheid tussen twee dozen?


Ik heb een gigabit-netwerk opgezet in mijn huis en een paar op Ubuntu gebaseerde boxen. Uit volledige nieuwsgierigheid zou ik de snelheid tussen de twee dozen willen controleren. Ik heb geen problemen met snelheid of wat dan ook, het is echt alleen de nerd in mij die nieuwsgierig is. En misschien laten de resultaten me weten of er ruimte is voor verbetering, of dat ik iets verkeerd geconfigureerd heb.

Dus hoe test je de netwerksnelheid tussen Ubuntu-dozen op de juiste manier?


141
2017-10-17 17:04


oorsprong




antwoorden:


ik gebruik iperf. Het is een client-serverconfiguratie in die zin dat je hem in de server-modus aan de ene kant uitvoert en ermee verbindt vanaf een andere computer aan de andere kant van het netwerk.

Beide machines draaien:

sudo apt-get install iperf

We beginnen met een iperf server op een van de machines:

iperf -s

En dan op de andere computer, vertel het iperf om als klant te verbinden:

iperf -c <address of other computer>

Op de clientcomputer ziet u zoiets als dit:

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

Als u een firewall op de server draait, moet u natuurlijk verbindingen toestaan ​​op poort 5001 of de poort wijzigen met de -p vlag.


Je kunt vrijwel hetzelfde doen met gewoon oud nc (netcat) als je zo geneigd bent. Op de servermachine:

nc -vvlnp 12345 >/dev/null

En de klant kan een gigabyte aan nullen doorpompen dd over de nc tunnel.

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

Als 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

De timing daar wordt gegeven door dd maar het moet nauwkeurig genoeg zijn, omdat het alleen zo snel kan worden uitgevoerd als de pijp het zal pakken. Als je daar niet gelukkig mee bent, kun je het hele ding in een time noemen.

Vergeet niet dat het resultaat in mega isbytes dus vermenigvuldig het met 8 om een ​​mega te krijgenstukjes-per-seconde snelheid. De demo hierboven draait op 944mbps.


218
2017-10-17 17:15



Man, je hebt alle antwoorden op mijn vragen! Mijn netwerk is blijkbaar niet zo goed ingesteld als het uwe, alleen overbrengen op 714 MBytes en bandbreedte van 598 Mbits / sec. Dunno zal daar misschien in de toekomst naar kijken. Bedankt. - Jacob Schoen
In alle eerlijkheid is de andere box slechts één switch (en 20meters van cat5e) verwijderd en is er geen congestie. 600mbps is nog steeds vrij snel. - Oli♦
Dit is geweldig, maar ik heb geen root-toegang tot de server. - Geoff
Probeer -P 10. Mijn resultaat met een enkele verbinding is vergelijkbaar met jschoens, maar met 3+ parallelle verbindingen pusht het consistent 920 Mbps. - wujj123456
@CMCDragonkai Waarschijnlijk test u geen bronnen die niet van u zijn. Zware tests met bandbreedte kunnen van invloed zijn op de stabiliteit op korte termijn. - Oli♦


Hetzelfde als Oli's aanbeveling voor iperf. Ik wil gewoon een aantal punten toevoegen:

  1. Er zijn ook Windows-clients waarmee testen mogelijk is platforms.
  2. -t <Seconden> verandert de testlengte. -P <N> verandert het aantal gelijktijdige verbindingen. Bijvoorbeeld, iperf -c [doel-IP] -P 10 -t 30 test 10 verbindingen samen gedurende 30 seconden en levert geaggregeerde resultaten samen met 10 afzonderlijke verbindingssnelheden.
  3. Je hebt sudo niet nodig. Je kunt eenvoudig het binary downloaden op http://iperf.fr/. Het zou moeten werken. Download het met wget, maak het uitvoerbaar met chmod, en u kunt het binaire bestand rechtstreeks uitvoeren. Het werkt perfect.

Ik ontdekte dat de standaardverbindingssnelheid met standaardinstellingen nogal schommelt. Echter, met 3+ parallelle verbindingen, zijn de resultaten consistenter op mijn gigabyte-switch. (consistent @ 910-920Mbps)


19
2018-05-14 07:33





Gebruik makend van dit script u kunt eenvoudig de verbindingssnelheid testen tussen uw machine en een externe host. Voorbeeld van gebruik:

$ scp-speed-test.sh user@remote_host 80000
  • user@remote_host is je bestemmingshost (je moet ssh-toegang hebben naar deze host)
  • 80000 is de geschatte grootte van het testbestand (in kbs), wat zal zijn ontvangen op de externe host. Het is geen verplicht argument.

6
2017-08-06 19:40



Dit lijkt de snelheid van de SCP-toepassing te testen, die lager zal zijn dan een test op een lagere laag. Nc gebruikt bijvoorbeeld L4. Dit is natuurlijk geweldig als u meer om de snelheid van SCP geeft. - sudo
Heeft problemen: dit script schrijft en leest een bestand op schijf - dat is langzamer dan ram, dus het kan een kunstmatige vertraging worden. Verzendt ook alleen nullen, in het geval dat ze gecomprimeerd zijn, is dat een grote kunstmatige versnelling. Als je pseudowillekeurige gegevens wilt, niet gebruiken /dev/random (het kan blokkeren) of urandom (link opmerkingen gesuggereerd dat) ze kunnen ook erg langzaam zijn, in plaats daarvan gebruik een dm-crypt (zie de veelgestelde vragen over cryptsetup 2.19 Hoe kan ik een apparaat met crypto-grade willekeur wissen?) misschien met een bestand in ram. - Xen2050


Als u uw Ethernet-LAN ​​op een lager niveau wilt testen, kunt u Etherate gebruiken, een gratis Linux CLI Ethernet-testtool:

https://github.com/jwbensley/Etherate

Het in de mix gooien als tools zoals iPerf (die erg goed zijn!) Werken via IP en TCP of UDP. Etherate-tests rechtstreeks via Ethernet / OSI-laag 2.


2
2018-03-26 20:37





Er zijn ook enkele andere mooie commandoregelhulpmiddelen voor het benchmarken van bandbreedtes tussen twee hosts:

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



Hoe verschillen deze van elkaar en van iperf? Werken ze hetzelfde, wat doen ze? nuttcp bevindt zich blijkbaar in Debian "nuttcp is gebaseerd op nttcp, wat op zijn beurt een verbetering was door iemand bij Silicon Graphics (SGI) op de originele ttcp, die Mike Muuss ergens in december 1984 bij BRL schreef, om de prestaties van TCP-stacks door UC Berkeley en BBN helpt DARPA beslissen welke versie moet worden geplaatst in de eerste BSD Unix-release. " - Xen2050


zoals ik in mijn antwoord op zijn beste antwoord heb opgemerkt, is die oplossing niet goed genoeg, omdat client / server dat niet is geoptimaliseerde naar ... knijpen elk beetje snelheid

mijn oplossing:

maak een ramdisk aan beide zijden (daarom ben je niet gelimiteerd door de opslagsnelheid en ik raad je aan ze te maken met ramfs niet tmpf's, dus ze zullen niet inruilen ... wees voorzichtig dat je niet minimaal 512M vrij geheugen achterlaat voor systeem is dit VERPLICHT als je giga ethernet hebt, bij die snelheid zelfs SSD's kunnen vertragen) installeer apache op server, maak dan een link naar ramdisk, maak enkele grote bestanden op ramdisk (100M-1G, je kunt ze maken met dd van / dev / random of kopiëren als je wat bij de hand hebt) ga dan client-kant en download ze (ook aan de ramdisk van die kant) met een geavanceerd download-programma dat ik heb gebruikt lftp

nou ja, verschil was belangrijk, van 75mbps gerapporteerd door iperf en 9.5M / s netcat

naar 11.18M / s met mijn oplossing:

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

0
2017-07-27 07:24





Het is eenvoudig om uw computer op de eerste doos aan te sluiten, steek de andere doos in de eerste doos. Start vervolgens vanaf je computer het eerste vakje ping het resultaat, ping het andere vakje en doe de aftrek.


-3
2017-10-17 17:16



Dat toont netwerklatentie die slechts een deel van de snelheid is. De 3G-verbinding van mijn telefoon heeft bijvoorbeeld een hoge latency (100-300 ms), maar het kan nog steeds een doorvoer van 5mbps verwerken. - Oli♦
Niet mijn fout als hij vroeg snelheid, maar wilde doorvoer. - Nyamiou The Galeanthrope
Latency is reactietijd, geen snelheid. - wullxz