Mit Nethogs die Netzwerkbandbreite pro Prozess beobachten

Aus LinuxUser 03/2015

Mit Nethogs die Netzwerkbandbreite pro Prozess beobachten

© magone, 123RF

Erbsenzähler

Welche Programme und Nutzer blockieren auf dem System das Netzwerk? Nethogs kennt die Antwort.

Seit mehr als zehn Jahren arbeitet der Niederländer Arnout Engelen [1] an seinem Tool Nethogs [2]. Das bislang wenig bekannte Werkzeug steht unter der GPL und schlüsselt, anders als die meisten anderen Programme zur Analyse des Netzwerks, die derzeit benötigte Bandbreite nach Prozessen auf. Das ist insbesondere dann nützlich, wenn Sie wissen möchten, welche Anwendung gerade besonders intensiv kommuniziert.

Damit das funktioniert, greift die Software für die Analyse auf das virtuelle Proc-Dateisystem (unter anderem /proc/net/tcp und /proc/net/tcp6) zurück. Wohl aus Gründen der Performance hat der Autor das Programm in C++ geschrieben. Die offiziellen Quellen finden Sie online [3] und auf der Heft-DVD. Gegenwärtig zeigt Nethogs nur den TCP-Datenfluss an; andere Protokolle, wie etwa ICMP oder UDP, unterstützt es gegenwärtig nicht.

Schnell installiert

Inzwischen findet sich die Software in den meisten offiziellen Paketquellen der bekannten Distributionen. Im Test unter Ubuntu 14.04 in der 64-Bit-Version war es möglich, mit den üblichen Kommandos das Paket zu installieren (Listing 1).

Listing 1

$ sudo apt-get update
$ sudo apt-get install libncurses5 libpcap0.8
$ sudo apt-get install nethogs

Übersetzen Sie Nethogs aus den Quellen, dann achten Sie darauf, gegebenenfalls ebenfalls vorab dessen Abhängigkeiten Libpcap und Ncurses nachzuziehen – unter Debian/Ubuntu also die Pakete libncurses5-dev und libpcap0.8-dev.

Das Programm benötigt teils Root-Rechte. Sie starten es daher entweder direkt als root oder unter Ubuntu beziehungsweise Debian mit Sudo-Rechten:

$ sudo nethogs

Nach dem Aufruf des Tools dauert es einen Moment, bis sinnvolle Ergebnisse auf dem Bildschirm erscheinen. Bevor das Werkzeug erste Analysen erstellen kann, müssen ja erst einige Netzwerkpakete über die Leitung huschen. Abbildung 1 zeigt, wie Nethogs in unserem Test die aktuell verbrauchte Bandbreite aufschlüsselte.

Abbildung 1: Nethogs zeigt, dass derzeit ein Wget- und ein Apt-Prozess etwas Bandbreite benötigen.

Abbildung 1: Nethogs zeigt, dass derzeit ein Wget- und ein Apt-Prozess etwas Bandbreite benötigen.

Die Anzeige der Daten geschieht in sechs Spalten: Die erste mit der Überschrift PID enthält die Prozess-ID der angezeigten Prozesse, die Spalte mit der Überschrift USER führt die entsprechenden Benutzer auf, die den jeweiligen Prozess gestartet haben. Die dritte Spalte mit der Überschrift PROGRAM verweist auf die ausführende Datei – in Abbildung 1 verbirgt sich ein apt-get update hinter dem Programm /usr/lib/apt/methods/http. Da sich viele Programme unter Linux anderer Werkzeuge oder Module bedienen, ist in dieser Spalte nicht immer ohne Weiteres das Programm zu erkennen, das Sie womöglich zuvor gestartet haben.

Die vierte Spalte mit der Bezeichnung DEV weist auf das Interface hin, über welches der Datenverkehr gerade fließt. Die vorletzte Spalte mit der Kennung SENT zeigt die ausgehende Bandbreite an, während die letzte Spalte RECEIVED den eingehenden Traffic in KByte pro Sekunde zeigt. Mit [Strg]+[C] oder alternativ [Q] verlassen Sie das Programm wieder.

Optionen

Nethogs startet beim Aufruf ohne Angabe von zusätzlichen Parametern mit sinnvollen Standardeinstellungen. So lauscht das Programm auf der ersten Schnittstelle (meist also eth0) und aktualisiert die Anzeige jede Sekunde. Möchten Sie ein anderes Interface in die Analyse mit einbeziehen, übergeben Sie dem Programm entweder nur dieses (Listing 2, erste Zeile) oder gleich alle (Listing 2, zweite Zeile).

Listing 2

$ sudo nethogs eth1
$ sudo nethogs eth0 eth1
$ sudo nethogs -d 2 eth0 eth1

Möchten Sie die Anzeige häufiger aktualisieren, nutzen Sie den Schalter -d. Diesen kombinieren Sie bei Bedarf mit der Auswahl der Interfaces (Listing 2, letzte Zeile). Weitere Parameter erfahren Sie mit dem Aufruf von sudo nethogs -h in einem Terminal.

Das Top-ähnliche Programm bietet die Möglichkeit, während der Laufzeit Einfluss auf die Anzeige der Daten zu nehmen. Über [M] schalten Sie zwischen den Einheiten KB/s, KB, B und MB hin und her. Die Software stellt dann nicht mehr die aktuell genutzte Bandbreite, sondern das seit Programmstart genutzte Datenvolumen pro Prozess dar (Abbildung 2).

Abbildung 2: Über <code srcset=

M verändern Sie in Nethogs die Anzeige der Einheiten.” width=”300″ height=”215″ /> Abbildung 2: Über M verändern Sie in Nethogs die Anzeige der Einheiten.

Mit [R] und [S] bietet das Programm zudem eine Möglichkeit, die Sortierung nach eingehender (r wie “received”) und ausgehender (s wie “sent”) Bandbreite an. Lassen Sie sich übrigens von der Anzeige unknown TCP in Abbildung 2 nicht verwirren: Nethogs hatte in diesem Fall womöglich zu einigen Verbindungen schlicht nicht genug Daten an der Hand, um die Prozesse eindeutig zuzuordnen.

Fazit

Beim Einsatz von Nethogs profitieren Sie vom Aufschlüsseln der aktuellen Bandbreite auf die laufenden Programme. So erkennen Sie bei Bedarf schnell, welcher Prozess oder User gerade den Rechner zum Erlahmen bringt oder die Leitung dichtmacht.

Nethogs erkennt allerdings nur TCP-Traffic und analysiert nur das, was auf dem aktuellen System geschieht; für die Analyse der Bandbreiten im Netzwerk eignet es sich also kaum. Jedoch erweist es sich als gutes Werkzeug, um die Netzwerkauslastung des Systems aufzuschlüsseln. 

Der Autor

Valentin Höbel arbeitet als Cloud Architect für den VoIP-Spezialisten NFON AG in München. Wenn er in seiner Freizeit nicht gerade am Kickertisch steht, wirft er einen Blick auf aktuelle Open-Source-Technologien.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 03/2015 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