Jak mogę dowiedzieć się, który proces pochłania moją przepustowość?

184

Myślę, że padam tutaj ofiarą błędu. Czasami podczas pracy (wciąż nie wiem dlaczego) mój ruch sieciowy wzrasta do 200 KB / s i pozostaje taki, nawet jeśli nie robię nic związanego z Internetem.

Zdarza mi się to czasem z użyciem procesora. Kiedy tak się dzieje, po prostu uruchamiam toppolecenie, aby dowiedzieć się, który proces jest odpowiedzialny, a następnie kill. Problem polega na tym: nie mam możliwości dowiedzenia się, który proces jest odpowiedzialny za moje wysokie użycie sieci. Zarówno monitor zasobów, jak i toppolecenie informują tylko o moim całkowitym zużyciu sieci, żadne z nich nie informuje mnie o przetwarzaniu określonych informacji o sieci.

Znalazłem tutaj pytania dotyczące monitorowania całkowitego wykorzystania przepustowości, ale, jak już wspomniałem, nie tego potrzebuję. Czy jest inne polecenie, którego mogę użyć, aby dowiedzieć się, który proces wymyka się spod kontroli?

Polecenie iftopdaje wyniki całkowicie niezgodne z informacjami zgłaszanymi przez Monitor systemu. Podczas gdy ten drugi twierdzi, że jest duży ruch w sieci, ten pierwszy twierdzi, że ma zaledwie 1 KB / s.

Próbowałem już zabić wszystkie oczywiste (Firefox, menedżer aktualizacji, Pidgin itp.) Bez powodzenia. Jak dotąd ponowne uruchomienie maszyny to jedyny sposób, w jaki udało mi się pozbyć tego problemu.

Malabarba
źródło

Odpowiedzi:

221

Odniosłem duży sukces z nethogami . Musi działać jako root, ale istnieją różne sposoby sortowania statystyk (np. KB / s lub całkowita przepustowość monitorowana od czasu uruchomienia nethogów).

Ponadto, jeśli korzystasz z sieci bezprzewodowej, musisz przekazać do niej urządzenie.

Zainstaluj go za pomocą polecenia: sudo apt-get install nethogs

Przykład: sudo nethogs wlan0

Ben
źródło
Przy bliższej inspekcji naprawdę denerwujące jest to, że zakłada, że ​​terminal ma zawsze szerokość 80 znaków i obciąża polecenie.
Li Lo,
3
Minęło trochę czasu, ale ta odpowiedź jest rzeczywiście znacznie prostsza.
Malabarba,
2
nethogsjest fajny, ale wydaje się, że używa o wiele więcej procesora na moim komputerze niżiftop
aidan
4
Ostrzegamy przed błędem, który powoduje, że niektóre wersje są nethogbezużyteczne: askubuntu.com/questions/726601/…
Rmano
3
Nie musisz ominąć urządzenia, jeśli korzystasz z sieci bezprzewodowej. sudo nethogsdziała w porządku.
Ads20000
55

Użyj, iftopaby zlokalizować port TCP na twoim komputerze, który odbiera największy ruch. Następnie użyj, sudo netstat -tupaby zlokalizować proces „posiadający” ten port.

To jest proces, którego szukasz.

PS: Powinien również działać dla UDP.

Li Lo
źródło
Dzięki, polecenie wydaje się działać, ale otrzymuję dziwne wyniki. Monitor systemu twierdzi w sumie około 180 KB / s, podczas gdy iftopw sumie wynosi zaledwie 1 kilobajt na sekundę.
Malabarba,
1
Przyjmuję odpowiedź, ponieważ odpowiada ona na pierwotne pytanie. Ale będzie mi miło, jeśli uda mi się dowiedzieć, co tu się dzieje.
Malabarba,
iptop wyświetla statystyki dla pojedynczego interfejsu. Nie jestem pewien, czy monitor systemu patrzy tylko na jeden interfejs czy na wszystkie. W takim przypadku ruch będzie pokazywany przez monitor systemu, ale nie pokazywany przez iftop, co jest w porządku, ponieważ i tak chcesz tylko patrzeć na interfejs internetowy (a nie lo). Właśnie przetestowałem iftop na moim systemie i pokazało to, czego się spodziewałem. Pamiętaj jednak, że iftop wyświetla średnie odpowiednio z 2, 10 i 40 sekund. Uruchomiłem iftop jak „sudo iftop -i eth0 -nPB”, jak go uruchomiłeś?
Li Lo,
Uruchomiłem go jako sudo iftop -B -i eth0, co oznacza, że ​​tylko sprawdzał mój ruch internetowy, prawda? Nie przyszło mi do głowy, że monitor systemu może sprawdzać również inne interfejsy. Jak na ironię problem zniknął 10 minut temu (po wielu godzinach), więc na razie nie mogę sprawdzić iftopponownie. Co oznacza interfejs lo?
Malabarba,
3
Ponieważ na ekranie iftop jest wiele liczb, stworzyłem zrzut ekranu, w którym wyróżniłem interesującą Cię liczbę. Porównaj to z monitorem systemu. Zrzut ekranu znajduje się na imgur.com/2iuiI . „lo” oznacza localhost, jest to interfejs, przez który lokalne programy mogą się ze sobą komunikować.
Li Lo,
14

Możesz zajrzeć ntop- który powinien monitorować aktywność sieci na poziomie procesu. Można znaleźć ntopw Centrum oprogramowania lub za pomocąsudo apt-get install ntop

Aby uzyskać instrukcje instalacji, postępuj zgodnie z ich stroną http://packages.ntop.org/

Marco Ceppi
źródło
2
niedostępne z Ubuntu 17.04 (
zesty
zobacz packages.ntop.org/apt-stable repo nowszych wersjach Ubuntu. także jestapt-get install ntopng
dw1
7

Inną alternatywą jest iptraf. Nie wyświetli PID procesu, ale powie, które połączenie wykorzystuje przepustowość.

Dennis Kaarsemaker
źródło
6

Późna odpowiedź, ale miałem ten sam problem. Okazało się, że jest Ubuntuone. Znaleziono to przez uruchomienie tcpdump. Przeszedłem tę samą krzywą uczenia się przy identyfikacji procesu.

Z moich notatek :

Informacje o połączeniu z systemem Ubuntu

Dziś rano uruchomiłem komputer z systemem Ubuntu 10.04, aby przekonać się, że po kilku minutach połączenie internetowe jest indeksowane. Widziałem to wcześniej na urządzeniach Windows i 99% czasu to oprogramowanie szpiegujące. Musiałem więc zbadać ... styl linii poleceń.

tcpdump. Pokazuje, że Ubuntuone wariuje.

System> Preferencje> Ubuntu One. Wyłącz całą synchronizację. To zrobiło to.

Myślę więc, że chciałbym zobaczyć wszystkie połączenia sieciowe i ich działania. mogę

netstat -cW (wyświetlaj ciągłe połączenia sieciowe w szerokim formacie, aby adresy obce nie były obcinane)

lsof -i |grep -v „localhost” (wyświetl listę otwartych plików pasujących do dowolnego adresu internetowego, grep, aby usunąć wszystkie otwarte pliki powiązane z localhost - uważam, że nie chcę widzieć lokalnych usług, ponieważ prawdopodobnie nie wpłyną one na wykorzystanie sieci).

Niektóre rzeczy do zabrania:

  1. Potrzebujesz informacji na temat dzienników Ubuntu do rozwiązywania problemów.
  2. Muszę dowiedzieć się więcej o tcpdump, więc zacznę od tego samouczka Daniela Miesslera .

Nota redaktora: Ta odpowiedź dotyczyła artykułu blogspot majsterkowicza, który jest przeznaczony tylko dla zaproszonych użytkowników. Ponieważ ta odpowiedź ma znaczące poparcie, jest więc cenna. Znalazłem kopię artykułu na temat Wayback Machine . I zawarłem to tutaj.

majstrować
źródło