Netzwerkanalyse, Fehlersuche, Testberichte
Home / News
Netzwerkanalyse
Grundlagen
Verkabelung
Erste Schritte
Baselining
Let's sniff
Tools
Auswerten/Filtern
Typische Probleme 1
Typische Probleme 2
Sicherheit
Bücher
Tutorials
Cacti
DSL einrichten
DynDNS einrichten
m0n0wall | pfSense
Nmap
VirtualBox
Wireshark
FAQ
Know How
Testberichte
Hardware-DB
Netzwerklexikon
Links / Service
Suche
Kontakt
Impressum
Feedback
Sitemap
Know How

Netzwerkperformance mit NetIO messen

Netzwerk zu langsam? Das kleine Tool NetIO zeigt aktuelle Messwerte und hilft dem Administrator bei der Fehlersuche.
Mirko Kulpa, 10.07.2005

Grundlagen

Bei der Fehlersuche im Netzwerk geht es oft um Probleme mit der Performance. Aber wo liegt die Ursache für den zu geringen Datendurchsatz im Netz? Das Programm NetIO von Kai Uwe Rommel erlaubt die Messung der Geschwindigkeit unabhängig von einer bestimmten Applikation. Da NetIO unter Windows, Unix, Linux und OS/2 arbeitet, können Messungen auch platformübergreifend vorgenommen werden. NetIO kann die Übertragungsrate für die Protokolle UDP, TCP und CIFS/SMB (NetBIOS) messen. NetBIOS wird nur in der Windows-Version unterstützt. Da NetIO für die Messung nicht auf die Festplatte zugreifen muss, wird wirklich die reine Netzwerkperformance gemessen.

Installation

Die letzte mir bekannte Version von NetIO ist die 1.26. Sie können die Software zum Beispiel von

Heise Download NetIO

herunterladen. Das ZIP-Archiv enthält den Sourcecode und die ausführbaren Programme für Windows, Linux und OS/2 (im Ordner bin). Je nach Platform kopieren Sie das entsprechende Programm in einen Ordner der sich im Suchpfad befindet. Dabei kann das Programm auch in "netio" bzw. "netio.exe" umbenannt werden. Beim Aufruf von NetIO ohne Parameter wird eine kurze Hilfe angezeigt:

[mirko] ~ $ netio

NETIO - Network Throughput Benchmark, Version 1.23
(C) 1997-2003 Kai Uwe Rommel

Usage: netio [options] [<server>]

  -s            run server side of benchmark (otherwise run client)
  -b <size>[k]  use this block size (otherwise run with 1,2,4,8,16 and 32k)

  -t            use TCP protocol for benchmark
  -u            use UDP protocol for benchmark
  -h <addr>     bind TCP and UDP servers to this local host address/name only
                (default is to bind to all local addresses)
  -p <port>     bind TCP and UDP servers to this port (default is 18767)

  -n            use NetBIOS protocol for benchmark
  -m <name>     use this as the local NetBIOS name (defaults are NETIOSRV
                for the server and NETIOCLT for the client)
  -a <adapter>  use this NetBIOS adapter (default is 0)

  <server>      If TCP or UDP is used for the client, a server name or address
                is required. For NetBIOS, this is optional, for the case that
                the server uses a different NetBIOS name than NETIOSRV.
      
 The server side can run either NetBIOS (-n), TCP (-t) or UDP (-u) protocol
 or all three (default, if neither -t, -u or -n are specified). The client
 runs one of these protocols only (-t, -u or -n must be specified).
      
 The -m and -a options apply to both client and server sides.

Das Programm enthält die Server- und Client-Applikation.

Messungen durchführen

Zuerst muss auf einer Maschine der NetIO-Server gestartet werden. Dazu wird NetIO mit dem Parameter "-s" aufgerufen. NetIO nutzt per Default die Portnummer 18767. Sollte dieser Port belegt sein, kann über den Parameter "-p" eine andere Portnummer bestimmt werden.

[mirko] ~ $ netio -s

NETIO - Network Throughput Benchmark, Version 1.23
(C) 1997-2003 Kai Uwe Rommel

TCP server listening.
UDP server listening.

Im nächsten Schritt wird von einer anderen Maschine der NetIO-Client aufgerufen. Als Parameter werden Hostname oder IP-Adresse des Servers und das Netzwerkprotokoll für die Messung angegeben. Das Beispiel zeigt eine Messung für das Protokoll TCP.

[sun] ~ $ netio -t netio-server.example.net

NETIO - Network Throughput Benchmark, Version 1.23
(C) 1997-2003 Kai Uwe Rommel

TCP connection established.
Packet size  1k bytes:  11542 KByte/s Tx,  7912 KByte/s Rx.
Packet size  2k bytes:  11499 KByte/s Tx,  7179 KByte/s Rx.
Packet size  4k bytes:  11302 KByte/s Tx,  7972 KByte/s Rx.
Packet size  8k bytes:  11482 KByte/s Tx,  7984 KByte/s Rx.
Packet size 16k bytes:  11077 KByte/s Tx,  7985 KByte/s Rx.
Packet size 32k bytes:  11519 KByte/s Tx,  7972 KByte/s Rx.
Done.

NetIO führt die Messung des Datendurchsatzes für die Paketgrößen von 1 KB bis 32 KB durch. Das Messergebnis wird getrennt für die Sende- (Tx) und Empfangsrichtung (Rx) angezeigt. Unterschiedliche Werte für beide Richtungen können zum Beispiel durch eine asymetrische Verbindung (ADSL) oder eine verschieden eingestellte TCP-Window Size verursacht werden. Auf der Serverseite ist die laufende Messung ebenfalls zu sehen:

[mirko] ~ $ netio -s

NETIO - Network Throughput Benchmark, Version 1.23
(C) 1997-2003 Kai Uwe Rommel

TCP server listening.
UDP server listening.
TCP connection established ... 
Receiving from client, packet size  1k ... 
Sending to client, packet size  1k ... 
Receiving from client, packet size  2k ... 
Sending to client, packet size  2k ... 
Receiving from client, packet size  4k ... 
Sending to client, packet size  4k ... 
Receiving from client, packet size  8k ... 
Sending to client, packet size  8k ... 
Receiving from client, packet size 16k ... 
Sending to client, packet size 16k ... 
Receiving from client, packet size 32k ... 
Sending to client, packet size 32k ... 
Done.
TCP server listening.

Das nächste Beispiel zeigt eine Messung für das verbindungslose Protokoll UDP. Über die Option "-b 2k" wird die Paketgröße auf 2 KB festgelegt.

[sun] ~ $ netio -u -b 2k netio-server.example.net

NETIO - Network Throughput Benchmark, Version 1.23
(C) 1997-2003 Kai Uwe Rommel

UDP connection established.
Packet size  2k bytes:  11365 KByte/s (1%) Tx,  11361 KByte/s (0%) Rx.
Done.

NetIO liefert Messwerte für die Netzwerkperformance zwischen zwei Hosts. Die Ergebnisse sind eine gute Grundlage für die Fehlersuche oder Optimierungen. NetIO kann sowohl im lokalen Netz (LAN) als auch im Internet genutzt werden.

Nach Beendigung der Messungen sollte der NetIO-Server mit STRG+C wieder deaktiviert werden. NetIO kann durchaus einiges an Traffic verursachen. Wer an seinem vServer oder Root Server also keine Flatrate hat, sollte den Traffic im Auge behalten.

Werte aus der Praxis

Die folgende Tabelle zeigt einige NetIO-Messwerte aus der Praxis. Gemessen wurde an einem klassischen Ethernet Hub, einem Fast Ethernet Switch und einem Gigabit Ethernet. Als Übertragungsprotokoll kam TCP zum Einsatz.

Netzwerk NetIO
[MBit/s]
theoretisches Maximum
[MBit/s]
Ethernet Hub 7,5 10
Fast Ethernet 90 100
Gigabit Ethernet 900 1.000

Beim Hub bremsen Kollisionen die Übertragung aus. Bei 100 MBit/s und Gigabit Ethernet bremst die kleine Block Size von 32 KB die Übertragung etwas aus. Die Messungen liefen zwischen zwei Systemen mit Intel Core 2 Duo CPU mit etwa 2 GHz. Als Netzwerkkarten kamen Broadcom NetXtreme Gigabit NICs zum Einsatz.

Hilfe und Erfahrungsaustausch zu NetIO finden Sie im Netzwerkforum.

Weiterführende Informationen

Weiterführende Informationen finden Sie unter folgenden Links:

 

 
© 2004-2023, network lab - we make your net work - Netzwerkforum
aktualisiert am 17.01.2023