Programme zum Bandbreiten-Monitoring

Aus LinuxUser 06/2013

Programme zum Bandbreiten-Monitoring

© Judy Smith, sxc.hu

Raus aus dem Engpass

Wer verstopft schon wieder die DSL-Leitung? Eine Reihe von Programmen hilft bei der Suche nach dem Verursacher.

Während noch vor wenigen Jahren vor allem schmalbandige Internet-Zugänge dominierten [1], verfügt die Mehrheit der Haushalte inzwischen über einen DSL-Anschluss. Doch da mehr und mehr Dienste und Anwendungen – vom Datenspeicher über Podcasts bis zum intelligenten Stromzähler – über die bestehende Infrastruktur laufen, stößt diese in immer kürzeren Abständen an ihre Grenzen. Bei mobilen Zugängen mit Volumen-Limit gilt es zudem, die übertragene Datenmenge im Auge zu behalten, sonst drosselt der Anbieter die Bandbreite oder schickt exorbitante Rechnungen.

Als Alternative zum Wechsel in einen teureren Tarif bietet es sich an, das Netzwerk zu untersuchen und herauszubekommen, welche Dienste die Bandbreite in welcher Weise ausnutzen. Dazu existiert eine große Vielfalt an Programmen [2]. Die Kunst besteht darin, die richtigen Werkzeuge zu finden.

Das Thema Netzwerk erfordert einige Grundlagen. Ausführliches Material finden Sie dazu in drei Artikeln, die LinuxUser vor einiger Zeit veröffentlicht hat – Grundlagen für die Systemanalyse (03/2007, [3]), Planung und Konfiguration (12/2007, [4]) sowie Sicherheit und Troubleshooting (01/2008, [5]).

Übersicht

Die vorgestellten Werkzeuge teilen sich in drei Kategorien: Eine Gruppe eignet sich für den Einsatz auf der Kommandozeile, eines bringt eine grafische Oberfläche mit, und eine dritte Gruppe nutzen Sie über den Webbrowser. Die Tabelle “Tools im Überblick” ordnet die einzelnen Tools zu.

Tools im Überblick

Kategorie Programme
Kommandozeile Atop, Bmon, Bwm-ng, Cbm, Dstat, Iftop, Ifstat, Iptraf, Jnettop, Nethogs, Nload, Pktstat, Tcpstat, Vnstat
Desktop Etherape
Webbrowser Bandwithd, Darkstat, Ntop

Während die meisten Programme sich auf einige wenige Funktionen konzentrieren, gehören Dstat [6] und Atop [7] zu den Allroundern, die zudem etliche Funktionen zur Analyse unter einem Dach vereinen. Das GTK-Programm Etherape [8] zeichnet eine dynamische Netzwerktopologie und symbolisiert den Datenfluss mit unterschiedlichen Grafiken.

Zum Beobachten des Datenverkehrs im laufenden Betrieb, also nach Netzwerkbandbreite pro Verbindung, eignet sich Iftop [9]. Die Top-Varianten Jnettop [10] und Pktstat [11] schlüsseln zudem nach Protokoll auf und schauen dabei auch in Anwendungsprotokolle wie HTTP hinein. Möchten Sie nachvollziehen, was gerade durch ihren DSL-Zugang geht, eignen sich Speedometer [12] oder Nload [13], die Graphen zeichnen.

Bmon [14] zeigt alle Schnittstellen auf einmal und zeichnet auf Wunsch eine kleine Grafik. Die Alternative Ifstat [15] beschränkt sich auf schnöde und leicht weiter zu verarbeitende Zahlen. Wer auf akkumulierte Daten zugreifen möchte, für den ist Vnstat [16] oder Atopsar [17] eine Alternative. Vnstat schlüsselt den Traffic bei Bedarf nach Tagen oder Stunden auf.

Bandbreite ermitteln

Die Anbieter preisen DSL-Zugänge häufig mit einem theoretisch möglichen Datendurchsatz an, ein exakter Wert kommt in den Verträgen selten vor. Zum Messen der tatsächlichen Bandbreite eignen sich Programme wie Speedometer. Für die erste Netzwerkschnittstelle rufen Sie das Tool mit den Parametern -rx eth0 für den Download und -tx eth0 für den Upload auf. Daraufhin zeigt Speedometer im Abstand von einer Sekunde die jeweilige Datenrate an, die über diese Schnittstelle läuft (Abbildung 1). Für ein Intervall von fünf Sekunden nutzen Sie die zusätzliche Option -i 5.

Abbildung 1: Beim Download eines ISO-Images und einem parallelen Audio-Stream ist die Bandbreite schnell aufgebraucht.

Abbildung 1: Beim Download eines ISO-Images und einem parallelen Audio-Stream ist die Bandbreite schnell aufgebraucht.

Benötigen Sie statt der Ausgabe als ASCII-Grafik eine Textzeile mit den gemessenen Werten, hilft die Option -p. Damit erfolgt die Ausgabe spaltenweise. Das erleichtert das Weiterverarbeiten mit anderen Werkzeugen (Listing 1).

Listing 1

$ speedometer -p -rx eth0
   0 B/s   c:   0 B/s   A:   0 B/s   (\                    )
17.4 KB/s  c:5.80 KB/s  A:11.6 KB/s  (...:::+++|           )
17.2 KB/s  c:10.4 KB/s  A:13.8 KB/s  (...:::+++|           )
17.2 KB/s  c:13.3 KB/s  A:14.8 KB/s  (...:::+++|           )
 735 KB/s  c: 733 KB/s  A: 337 KB/s  (...:::+++###%|       )
 734 KB/s  c: 670 KB/s  A: 394 KB/s  (...:::+++###%|       )
 735 KB/s  c: 686 KB/s  A: 413 KB/s  (...:::+++###%|       )
 735 KB/s  c: 702 KB/s  A: 431 KB/s  (...:::+++###%|       )
 735 KB/s  c: 734 KB/s  A: 460 KB/s  (...:::+++###%|       )

Im Hintergrund

Die Programme Iptraf, Iftop, Jnettop, Nethogs [18], Tcpstat [19], Pktstat, Ntop, Darkstat und Bandwidthd greifen beim Erfassen und Zählen der Pakete auf die Bibliothek Pcap zurück, ebenso die Diagnose-Werkzeuge Wireshark/Tshark und Tcpdump. Damit bieten die Programme die Möglichkeit, den Datenverkehr nach bestimmten Kriterien zu filtern. Die Syntax der Filter erklärt die Manpage zu pcap-filter. Diese Programme erfordern den Einsatz von Root-Rechten.

Dstat, Atop, Bmon, Cbm [20], Ifstat, Bwm-ng [21] und Vnstat verwenden hingegen die Informationen in /proc/net/dev und arbeiten teils mit den Rechten eines normalen Benutzers. Nload greift bereits auf das neuere /sys/class/net zurück und erfordert ebenfalls keine administrativen Privilegien.

Analyse im Betrieb

Eine Gesamtübersicht pro Schnittstelle liefern Ifstat, Iptraf, Tcpstat, Cbm, Bmon sowie Bwm-ng. Als Anzeige steht eine Übersicht über alle Schnittstellen oder pro Schnittstelle bereit. Bei Iptraf verbirgt sich diese Information hinter dem Menüpunkt General interface statistics, während Sie beim Aufruf eines der anderen Programme die Schnittstelle als Parameter angeben.

Ifstat, Vmstat, Tcpstat und Iostat bilden ein Quartett, das die erforderlichen, zentralen Daten des Systems liefert. Während Vmstat Aussagen über den genutzten virtuellen Speicher ermöglicht (“virtual memory statistics”), bietet Iostat ähnliches für die Geschwindigkeit beim Lesen und Schreiben auf Speichermedien.

Ifstat ist die Abkürzung für “interface statistics monitoring” und gibt wie Tcpstat (“tcp statistics”) Leistungsdaten zu den Netzwerkschnittstellen des Systems aus. Tcpstat und Ifstat liegen als eigenständige Werkzeuge vor, Vmstat gehört zu den Werkzeugen für das Proc-Dateisystem, und Iostat zählt zu den Sysstat-Utilities.

Die Ausgabe von Ifstat erfolgt spaltenweise pro Schnittstelle. Dabei zeigt das Programm die empfangene (KB/s in) und gesendete (KB/s out) Datenmenge an (Listing 2). Es erfasst die Messwerte im Abstand von einer Sekunde und gibt sie zeilenweise aus. Als besonders hilfreiche erweisen sich die Parameter -a und -t. Mit dem Ersten untersuchen Sie alle Schnittstellen, für die eine statistische Auswertung möglich ist. Mit -t ergänzen Sie die Ausgabe um einen Zeitstempel am Anfang der Zeilen.

Listing 2

$ ifstat -t 0.5 5
  Time           eth0               wlan0
HH:MM:SS   KB/s in  KB/s out   KB/s in  KB/s out
23:57:29    187.98      4.12      0.00      0.00
23:57:30    187.91      4.12      0.00      0.00
23:57:30    187.98      4.12      0.00      0.00
23:57:31    187.95      3.99      0.00      0.00
23:57:31    185.37      4.56      0.00      0.00

Zusätzlich akzeptiert Ifstat zwei Werte für eine Verzögerung (“delay”) und die Anzahl der ausgegebenen Messwerte (“count”). Listing 2 zeigt eine Messung alle halbe Sekunde, die nach fünf Werten endet. Die gleichmäßigen Werte der zweiten Spalte (KB/s in) deuten auf einen Download über die erste Ethernet-Schnittstelle hin. Auf dem WLAN-Port passiert dagegen nichts.

Color Bandwidth Meter (CBM) erstellt eine schlichte Übersicht zu allen Netzwerkschnittstellen. Von links nach rechts beinhalten die vier Spalten den Namen der Schnittstelle, die Menge des empfangenen und gesendeten Daten sowie die Gesamtsumme des Verkehrs, den das Tool verarbeitet hat (Abbildung 2).

Abbildung 2: CBM verzeichnet Datenverkehr über das WLAN.

Abbildung 2: CBM verzeichnet Datenverkehr über das WLAN.

Während Bwm-ng ähnlich kompakt wie CBM auftritt, liefert Bmon (“bandwidth monitor”) weitaus mehr Informationen. Neben einer Übersicht über die Schnittstellen im oberen Drittel des Terminals zeigt das Programm nach einem Druck auf [G] in der Mitte die Daten über empfangene (RX) und gesendete Daten (TX) als ASCII-Grafik an. Am unteren Rand erstellt das Tool über [D] eine Statistik zum Volumen und Fehlern beim Übertragen (Abbildung 3).

Abbildung 3: Bmon gibt detaillierte Aussagen zur Netzlast einer Schnittstelle.

Abbildung 3: Bmon gibt detaillierte Aussagen zur Netzlast einer Schnittstelle.

Auch gängige Desktop-Umgebungen bringen Anwendungen mit, um die Netzwerk-Bandbreite im Blick zu behalten. So bietet KDE neben dem Netzwerkmonitor KNemo [22] das Plasmoid Netzwerk-Überwachung, das Sie bei Bedarf (bei einem breiten Bildschirm auch um 90 Grad gedreht) an eine Seite des Desktops legen (Abbildung 4).

Abbildung 4: Das Plasmoid <code srcset=

Netzwerk-Überwachung zeigt beim gleichzeitigen Streaming vieler Videos deutlich, dass das System mehr Daten empfängt (blau) als es verwendet (grün).” width=”300″ height=”175″ /> Abbildung 4: Das Plasmoid Netzwerk-Überwachung zeigt beim gleichzeitigen Streaming vieler Videos deutlich, dass das System mehr Daten empfängt (blau) als es verwendet (grün).

TIPP

Das Tool KSysguard zum Überwachen des Systems bietet mit vielfältigen Sensoren ebenfalls weitreichende Möglichkeiten. Neben solchen für das übertragene Datenvolumen zeigen diverse Zähler fehlerhaft übertragene oder verloren gegangene Pakete an.

Für Gnome füllen der Gnome Network Monitor [23] und das Gnome Network Monitor Applet [24] die Lücke. XFCE bringt das Netload-Plugin mit, das neben der zu beobachtenden Schnittstelle deren IP-Adresse sowie eine Statistik über die letzten vier Messungen ausgibt. Zwei Balken zeigen jeweils die Menge des Datenverkehrs in beide Richtungen an (Abbildung 5).

Abbildung 5: Das XFCE-Plugin Netload liefert grundlegende Verkehrsdaten, die einen ungefähren Eindruck vom momentanen Zustand des Netzes geben.

Abbildung 5: Das XFCE-Plugin Netload liefert grundlegende Verkehrsdaten, die einen ungefähren Eindruck vom momentanen Zustand des Netzes geben.

Traffic nach Interface

Zu den Veteranen der LAN-Diagnose-Riege zählt Iptraf [25]. Es bietet über eine menügesteuerte Textoberfläche (Abbildung 6) neben einer Übersicht nach Verbindung (IP Traffic Monitor) eine allgemeine Übersicht über Netzwerkschnittstellen (General interface statistics). Eine Übersicht nach den zugrunde liegenden Protokollen wie IP, TCP, UDP und ICMP. Eine Statistik nach Paketgrößen oder Ports ist ebenfalls enthalten.

Abbildung 6: Iptraf zeigt Informationen über die Schnittstelle <code srcset=

wlan0 an.” width=”300″ height=”204″ /> Abbildung 6: Iptraf zeigt Informationen über die Schnittstelle wlan0 an.

Eine bestimmte Übersicht erreichen Sie neben der Auswahl über das Menü auch mit der passenden Option direkt von der Kommandozeile aus. Weiterhin haben Sie die Möglichkeit, Filter für bestimmte Pakete zu definieren. Mit Hilfe des Promiscuous Mode zählen Sie alle Pakete im LAN-Segment, anstatt nur die, die explizit an die beobachtete Schnittstelle gehen.

Während sich Iptraf gut eignet, um erste Anhaltspunkte zur generellen Last an einer Schnittstelle zu bekommen, verhält es sich bei Benchmark-Messungen mit Netperf [26] oder Iperf [27] anders – die maximal erzielbare Bandbreite sinkt spürbar. Zudem gibt Iptraf keine Auskunft darüber, welche Prozesse den Netzwerkverkehr verursachen.

Traffic nach Verbindungen

Genauere Aussagen zur Last auf der Leitung gelingen mit Iftop, Jnettop und Pktstat. Iftop schlüsselt die Netzlast detailliert bezogen auf Verbindungen und Protokolle auf. Zudem zeichnet es im Terminal anschauliche Balken (Abbildung 7). Standardmäßig beobachtet Iftop die erste Schnittstelle, die wie eine externen Schnittstelle aussieht, und überspringt die Loopback-Schnittstelle lo. Mit der Option -i Interface weisen Sie das Programm an, stattdessen die von Ihnen gewünschte Schnittstelle zu beobachten und zu analysieren.

Abbildung 7: Iftop zeigt auch unter Last keine Schwächen.

Abbildung 7: Iftop zeigt auch unter Last keine Schwächen.

Üblicherweise versucht Iftop die Namen von IP-Adressen via DNS aufzulösen. Das erzeugt zusätzliche Last und verfälscht die Ergebnisse etwas. Braucht der DNS-Server länger, um die vielen Anfragen zu beantworten, kommt es zu weiteren Verzögerungen. Es empfiehlt sich daher, die Namensauflösung mit der Option -n vollständig zu deaktivieren. Viele andere Programme bieten eine ähnliche Option.

Jnettop und Pktstat

Jnettop und Pktstat sehen in Protokolle von Anwendungen hinein. So zeigen beide für jede HTTP-Verbindung die ausgeführten Befehle mitsamt der URLs. Das erlaubt einen Rückschluss darauf, welches Programm den Datenverkehr verursacht.

Die zu beobachtende Schnittstelle geben Sie bei beiden Tools über die Option -i Interface an und erhalten nach kurzer Zeit eine passende Anzeige. In jeder Zeile sehen Sie für die Verbindung Quell- und Ziel-IP sowie – falls ein Übersetzen der Adresse via DNS gelingt – den Hostnamen. Zusätzlich gibt Jnettop den Port, den Typ des Protokolls und die Menge der übertragenen Daten aus.

Etherape

Einen interessanten Ansatz, Verbindungen zu visualisieren, verfolgt das GTK-Programm Etherape. Es zeichnet eine “Landkarte” jener Hosts, mit denen das System kommuniziert. Durch die Stärke der Linien und Kreisfläche für die Hosts symbolisiert es, wie viel Bandbreite durch Verbindungen oder an Hosts gehen (Abbildung 8).

Abbildung 8: Etherape beim Zugriff auf die Webseite von LinuxUser.

Abbildung 8: Etherape beim Zugriff auf die Webseite von LinuxUser.

Es kommt vor, dass die Kreise um die Hosts mitunter die gesamte Anzeige überdecken. Das passiert insbesondere beim Abruf von Video-Streams. Um das Überdecken zu verhindern, bleibt nur die Möglichkeit, die Einstellungen anzupassen.

Die Dialoge des Programms liegen bisher nur teilweise übersetzt vor. Unter File | Einstellungen passen Sie die Größe der Kreise an (Node Radius Multiplier) sowie das Verhältnis der Dicke der Verbindungen zum Radius des Kreise (Link Width – Node Radius Ratio). Filter für den Netzwerkverkehr verstecken sich unter dem Menüpunkt Capture filter. Eine tabellarische Übersicht der Knoten gibt es unter View | Nodes.

Fazit

Mit den vorgestellten Bordmitteln spüren Sie Dauersauger und Bandbreitenfresser im lokalen Netz schnell auf. Die Werkzeuge erfordern zwar etwas Vorarbeit, um die richtigen Fragen zu stellen. Wer sie jedoch einmal beherrscht, der erhält wertvolle Daten über den Verkehrsfluss im Netz und spart so unter Umständen den Wechsel in einen teureren DSL-Tarif. 

Glossar

Promiscuous Mode

Modus einer Schnittstelle, bei der die Hardware alle Pakete aus dem Netzwerksegment an das Betriebssystem weiterreicht.

Infos

[1] Schmalbandatlas Deutschland, http://www.schmalbandatlas.de/

[2] Englischsprachige Übersicht zu Netzwerk-Monitoring: http://www.dynacont.net/documentation/linux/network_monitoring/

[3] Grundlagen Netzwerk: Martin Steigerwald “Komplexe Architektur”, LU 03/2007, S. 86, https://www.linux-community.de/11894

[4] Netzwerkkonfiguration: Martin Steigerwald “Gute Verbindungen”, LU 12/2007, S. 88, https://www.linux-community.de/14149

[5] Netzwerkdiagnose: Martin Steigerwald “Sicher und zuverlässig”, LU 01/2008, S. 80, https://www.linux-community.de/14150

[6] Dstat: http://freecode.com/projects/dstat

[7] Atop: http://atoptool.nl

[8] Etherape: http://etherape.sourceforge.net

[9] Iftop: Frank Hofmann, “Verkehrsbeobachter”, LU 02/2013, S. 35, https://www.linux-community.de/28144

[10] Jnettop: http://freecode.com/projects/jnettop

[11] Pkstat: Charly Kühnast, “Pktstat. Traffic Spotting”, Linux Magazin 05/2012, S. 71, http://www.linux-magazin.de/Ausgaben/2012/05/Einfuehrung2

[12] Speedometer: http://excess.org/speedometer/

[13] Nload: http://www.roland-riegel.de/nload

[14] Bmon: http://freecode.com/projects/bmon

[15] Ifstat: http://gael.roualland.free.fr/ifstat/

[16] Vnstat: http://humdi.net/vnstat/

[17] Atopsar: Martin Steigerwald, “Engpässe aufspüren”, Linux-Magazin 07/2011, S. 72, http://www.linux-magazin.de/Ausgaben/2011/07/Realtime-Monitoring

[18] Nethogs: http://nethogs.sourceforge.net

[19] Tcpstat: http://www.frenchfries.net/paul/tcpstat

[20] Color Bandwith Meter: http://www.isotton.com/software/unix/cbm/

[21] BWM-ng: http://www.gropp.org/?id=projects&sub=bwm-ng

[22] KNemo: http://www.kde.org/applications/internet/knemo/

[23] Gnome Network Monitor, http://gnetworkmonitor.sourceforge.net

[24] Gnome Netstatus: http://directory.fsf.org/wiki/Gnome_Netstatus

[25] Iptraf: Thomas Leichtenstern, “Verkehrsüberwachung” , LU 06/2009, S. 44, https://www.linux-community.de/18252

[26] Netperf: http://www.netperf.org/netperf/

[27] Iperf: http://iperf.sourceforge.net

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 06/2013 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben