Ich benutze iperf
. Eine Client-Server-Anordnung besteht darin, dass Sie sie an einem Ende im Servermodus ausführen und von einem anderen Computer auf der anderen Seite des Netzwerks aus eine Verbindung zu ihr herstellen.
Eine der beiden Maschinen läuft:
sudo apt-get install iperf
Wir werden einen iperf
Server auf einem der Rechner starten :
iperf -s
Und dann sagen Sie auf dem anderen Computer, dass Sie iperf
sich als Client verbinden sollen:
iperf -c <address of other computer>
Auf dem Clientcomputer sehen Sie ungefähr Folgendes:
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
Wenn Sie auf dem Server eine Firewall ausführen, müssen Sie natürlich Verbindungen auf Port 5001 zulassen oder den Port mit dem -p
Flag ändern .
Sie können so ziemlich dasselbe mit Plain Old nc
(Netcat) machen, wenn Sie dazu neigen. Auf dem Server:
nc -vvlnp 12345 >/dev/null
Und der Client kann ein Gigabyte Nullen durch dd
den nc
Tunnel leiten.
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
Das Timing dort wird von vorgegeben dd
, es sollte jedoch genau genug sein, da es nur so schnell ausgegeben werden kann, wie die Pipe es benötigt. Wenn Sie damit nicht zufrieden sind, können Sie das Ganze in einen time
Anruf einwickeln .
Denken Sie daran , dass das Ergebnis in mega Bytes es so multiplizieren um 8 eine mega zu bekommen Bits -pro-Sekunden - Geschwindigkeit. Die obige Demo läuft mit 944 MBit / s.
Entspricht Olis Empfehlung für iperf. Ich möchte nur einige Punkte hinzufügen:
-t <seconds>
ändert die Testlänge. ändert die Anzahl der gleichzeitigen Verbindungen. Zum Beispiel werden 10 Verbindungen 30 Sekunden lang zusammen getestet und es werden aggregierte Ergebnisse zusammen mit 10 separaten Verbindungsgeschwindigkeiten ausgegeben.-P <n>
iperf -c [target IP] -P 10 -t 30
wget
, machen Sie es ausführbar mitchmod
, und Sie können die Binärdatei direkt ausführen. Es funktioniert perfektIch habe festgestellt, dass die Geschwindigkeit einer einzelnen Verbindung mit den Standardeinstellungen ziemlich stark schwankt. Bei mehr als 3 parallelen Verbindungen sind die Ergebnisse auf meinem Gigabyte-Switch jedoch konsistenter. (konsistent bei 910-920 Mbit / s)
quelle
Mit diesem Skript können Sie auf einfache Weise die Verbindungsgeschwindigkeit zwischen Ihrem Computer und einem Remote-Host testen. Beispiel für die Verwendung von:
user@remote_host
ist Ihr Zielhost (Sie müssen über SSH-Zugriff auf diesen Host verfügen)80000
ist die ungefähre Größe der Testdatei (in KB), die an den Remote-Host gesendet wird. Es ist kein zwingendes Argument.quelle
/dev/random
(sie können blockieren) oderurandom
(Linkkommentare werden empfohlen), sondern verwenden Sie stattdessen eine dm-crypt (siehe FAQ von cryptsetup 2.19 Wie kann ich ein Gerät mit crypto- bereinigen?). grade zufälligkeit? ) vielleicht mit einer datei im ram.Wenn Sie Ihr Ethernet-LAN auf einer niedrigeren Ebene testen möchten, können Sie Etherate verwenden, ein kostenloses Linux CLI-Ethernet-Testtool:
https://github.com/jwbensley/Etherate
Werfen Sie es in den Mix, da Tools wie iPerf (die sehr gut sind!) Über IP und TCP oder UDP funktionieren. Etherate-Tests direkt über Ethernet / OSI Layer 2.
quelle
Der folgende Befehl erfordert keine zusätzlichen Pakete, aber SSH-Zugriff:
Beispielausgabe:
Der Befehl druckt eine 3 GB (1000 ^ 3 Byte) -Dummy-Datei mit Nullen an stdout auf dem Remote-Server, die über SSH an stdout des lokalen Servers gedruckt (übertragen) und dann lokal weitergeleitet
/dev/null
(dh ignoriert) wird. Sie können sogar den Fortschritt des Tests sehen, während Sie ihn ausführen.Sicherlich nicht so genau wie andere Tools, aber mein Anwendungsfall war das Debuggen eines Sicherungsprozesses, bei dem ich testen wollte, ob die Netzwerkgeschwindigkeit das Problem ist, ohne zusätzliche Pakete zu installieren.
quelle
Es gibt auch einige andere nützliche Befehlszeilentools für das Bandbreiten-Benchmarking zwischen zwei Hosts:
nuttcp
Nepim
goben
quelle
wie ich beste Antwort in meinem Kommentar darauf hingewiesen, dass Lösung nicht gut genug sein Ursache Client / Server nicht optimiert zu ... quetschen jedes Bit der Geschwindigkeit
meine Lösung:
Erstellen Sie auf beiden Seiten eine Ramdisk (daher sind Sie nicht an die Speichergeschwindigkeit gebunden und ich schlage vor, Sie haben sie mit Ramfs und nicht mit tmpfs erstellt, damit sie nicht vertauscht werden ... Achten Sie nur darauf, nicht mindestens 512 MB freien Speicherplatz zu lassen Für das System ist dies ERFORDERLICH, wenn Sie mit Giga-Ethernet arbeiten. Bei dieser Geschwindigkeit können sogar SSDs die Installation von Apache auf dem Server verlangsamen. Erstellen Sie dann einen Link zur Ramdisk. Erstellen Sie einige große Dateien auf der Ramdisk dd aus / dev / random oder kopieren, wenn Sie welche zur Hand haben), dann gehen Sie auf die Client-Seite und laden Sie diese (auch auf der Ramdisk dieser Seite) mit einem erweiterten Download-Programm herunter, das ich verwendet habe
lftp
Na ja, der Unterschied war groß, von 75 MBit / s, die von Iperf und 9,5 M / s Netcat gemeldet wurden
bis 11.18M / s mit meiner Lösung:
quelle
Es ist ganz einfach, den Computer an die erste Box anzuschließen und die andere an die erste Box anzuschließen. Pingen Sie dann von Ihrem Computer aus das erste Kästchen an, speichern Sie das Ergebnis, pingen Sie das andere Kästchen an und führen Sie die Subtraktion durch.
quelle