Wie finde ich heraus, welcher Prozess meine Bandbreite beansprucht?

184

Ich glaube, ich bin hier das Opfer eines Käfers. Manchmal, während ich arbeite (ich weiß immer noch nicht warum), erreicht mein Netzwerkverkehr bis zu 200 KB / s und bleibt dies auch dann, wenn ich nichts mit dem Internet zu tun habe.

Das passiert mir manchmal mit der CPU-Auslastung. Wenn dies der Fall ist, führe ich einfach einen topBefehl aus, um herauszufinden, welcher Prozess dafür verantwortlich ist, und dann kill. Problem ist: Ich habe keine Möglichkeit zu wissen, welcher Prozess für meine hohe Netzwerkauslastung verantwortlich ist. Sowohl der Ressourcenmonitor als auch der topBefehl geben nur meine gesamte Netzwerknutzung an. Keiner von beiden gibt an, dass bestimmte Netzwerkinformationen verarbeitet wurden.

Ich habe hier Fragen zur Überwachung der gesamten Bandbreitennutzung gefunden, aber wie gesagt, das ist nicht das, was ich brauche. Gibt es einen anderen Befehl, mit dem ich herausfinden kann, welcher Prozess außer Kontrolle gerät?

Der Befehl iftopgibt Ergebnisse aus, die mit den vom Systemmonitor gemeldeten Informationen überhaupt nicht übereinstimmen. Während der letztere angibt, dass es einen hohen Netzwerkverkehr gibt, gibt der erstere an, dass es kaum 1 KB / s gibt.

Ich habe bereits versucht, alle offensichtlichen (Firefox, Update-Manager, Pidgin usw.) ohne Glück zu töten. Bisher war der Neustart der Maschine die einzige Möglichkeit, das Problem zu beheben.

Malabarba
quelle

Antworten:

221

Ich hatte viel Erfolg mit Nethogs . Es muss als root ausgeführt werden, aber es gibt verschiedene Möglichkeiten, die Statistiken zu sortieren (wie KB / s oder die Gesamtbandbreite, die seit dem Start von nethogs überwacht wurde).

Wenn Sie eine drahtlose Verbindung verwenden, müssen Sie das Gerät an diese weiterleiten.

Installieren Sie es mit dem Befehl: sudo apt-get install nethogs

Beispiel: sudo nethogs wlan0

Ben
quelle
Bei näherer Betrachtung ist es wirklich ärgerlich, dass davon ausgegangen wird, dass das Terminal immer 80 Zeichen breit ist und den Befehl abschneidet.
Li Lo
3
Es ist schon eine Weile her, aber diese Antwort ist in der Tat erheblich einfacher.
Malabarba
2
nethogsist nett, aber es scheint viel mehr CPU auf meinem Computer zu verwenden alsiftop
aidan
4
Seien Sie gewarnt, dass ein Fehler einige Versionen von nethogunbrauchbar macht: askubuntu.com/questions/726601/…
Rmano
3
Sie müssen das Gerät nicht passieren, wenn Sie WLAN verwenden. sudo nethogsfunktioniert gut.
Ads20000
55

Verwenden Sie iftopdiese Option, um den TCP-Port auf Ihrem Computer zu ermitteln, der den meisten Datenverkehr empfängt. Verwenden Sie dann sudo netstat -tup, um den Prozess zu lokalisieren, der diesen Port "besitzt".

Das ist der Prozess, den Sie suchen.

PS: Sollte auch für UDP funktionieren.

Li Lo
quelle
Danke, der Befehl scheint zu funktionieren, aber ich erhalte seltsame Ergebnisse. Der Systemmonitor erreicht eine Geschwindigkeit von rund 180 KB / s, während er iftopeine Geschwindigkeit von knapp 1 Kilobyte pro Sekunde erreicht.
Malabarba
1
Ich akzeptiere die Antwort, da sie die ursprüngliche Frage beantwortet. Aber ich wäre nett, wenn ich herausfinden könnte, was hier vor sich geht.
Malabarba,
iptop zeigt Statistiken für eine einzelne Schnittstelle an. Ich bin nicht sicher, ob der Systemmonitor nur eine oder alle Schnittstellen anzeigt. Wenn dies der Fall ist, wird der Datenverkehr vom Systemmonitor angezeigt, aber nicht von iftop. Dies ist in Ordnung, da Sie ohnehin nur auf Ihre Internetschnittstelle schauen möchten (und nicht auf die). Ich habe gerade iftop auf meinem System getestet und es hat gezeigt, was ich erwartet hatte. Beachten Sie jedoch, dass iftop Mittelwerte über 2s, 10s bzw. 40s anzeigt. Ich habe iftop wie 'sudo iftop -i eth0 -nPB' ausgeführt. Wie haben Sie es ausgeführt?
Li Lo
Ich habe es als ausgeführt sudo iftop -B -i eth0, das heißt, es wurde nur auf meinen Internetverkehr zugegriffen, oder? Mir ist nicht in den Sinn gekommen, dass der Systemmonitor möglicherweise auch andere Schnittstellen überprüft. Ironischerweise verschwand das Problem vor 10 Minuten (nach vielen Stunden), sodass ich es vorerst nicht noch einmal überprüfen kann iftop. Wofür steht die lo-Schnittstelle?
Malabarba,
3
Da auf dem iftop-Bildschirm viele Zahlen angezeigt werden, habe ich einen Screenshot erstellt, in dem ich die Nummer hervorgehoben habe, die Sie interessiert. Vergleichen Sie dies mit dem Systemmonitor. Der Screenshot ist bei imgur.com/2iuiI . "lo" steht für localhost, es ist eine Schnittstelle, über die lokale Programme miteinander kommunizieren können.
Li Lo
14

Möglicherweise möchten Sie nachsehen, ntopwelche Netzwerkaktivität auf Prozessebene überwacht werden soll. Sie finden ntopim Software Center oder beisudo apt-get install ntop

Installationsanweisungen finden Sie auf der Seite http://packages.ntop.org/.

Marco Ceppi
quelle
2
nicht verfügbar mit Ubuntu 17.04 (zesty)
Shadi
Repos für spätere Ubuntu-Versionen finden Sie unter packages.ntop.org/apt-stable . es ist auchapt-get install ntopng
dw1
7

Eine andere Alternative ist iptraf. Es zeigt Ihnen nicht die PID des Prozesses an, sondern zeigt Ihnen, welche Verbindung wie viel Bandbreite benötigt.

Dennis Kaarsemaker
quelle
6

Späte Antwort, aber ich hatte das gleiche Problem. Es stellte sich heraus, Ubuntuone zu sein. Fand das durch Ausführen von tcpdump. Ich habe die gleiche Lernkurve zur Prozessidentifikation durchlaufen.

Aus meinen Notizen :

Ubuntu Box Verbindungsinformationen

Ich habe heute Morgen meinen Ubuntu 10.04-Desktop gestartet und festgestellt, dass die Internetverbindung nach einigen Minuten kriecht. Ich habe dies auf Windows-Boxen schon einmal gesehen und in 99% der Fälle handelt es sich um Spyware. Also musste ich ... den Befehlszeilenstil untersuchen.

tcpdump. Zeigt, wie Ubuntuone verrückt wird.

System> Einstellungen> Ubuntu One. Schalten Sie alle Synchronisierungen aus. Das hat es geschafft.

Ich denke also, ich würde gerne alle Netzwerkverbindungen sehen und sehen, was sie tun. ich kann

netstat -cW (Netzwerkverbindungen fortlaufend im Breitformat auflisten, damit fremde Adressen nicht abgeschnitten werden)

lsof -i |grep -v 'localhost' (listet offene Dateien auf, die mit einer beliebigen Internetadresse übereinstimmen, grep, um alle mit localhost verknüpften offenen Dateien zu entfernen. Meiner Meinung nach möchte ich keine lokalen Dienste sehen, da diese die Netzwerknutzung wahrscheinlich nicht beeinflussen).

Einige Dinge zum Mitnehmen:

  1. Sie müssen sich mit Ubuntu-Protokollen vertraut machen, um Fehler zu beheben.
  2. Möchten Sie mehr über tcpdump erfahren, so beginne ich mit diesem Tutorial von Daniel Miessler .

Anmerkung der Redaktion: Diese Antwort bezog sich auf den Blogspot-Artikel von tinker, der nur für eingeladene Benutzer gedacht ist. Da diese Antwort beträchtliche positive Stimmen hat, ist sie wertvoll. Ich habe eine Kopie des Artikels über Wayback Machine gefunden . Und das hier aufgenommen.

basteln
quelle