Jak mogę sprawdzić, z jakiej przepustowości korzysta każda aplikacja lub proces?

15

Nagle widzę, że moja przepustowość wynosi 400 KB / s, co jest maksymalnym poziomem, jaki zapewnia mi dostawca usług internetowych, więc pobieranie aplikacji jest na najwyższym poziomie.
Chodzi o to, że nie zacząłem żadnego pobierania, więc robi to w tle bez mówienia.
Skąd mam wiedzieć, z której aplikacji lub procesu korzysta?
Albo, w zasadzie, jak mogę ustalić, ile przepustowości wykorzystuje każdy otwarty proces lub aplikacja?

Petruza
źródło
Natknąłem się na aplikację zaporową, która mogła przedstawić wykres wykorzystania sieci dla aplikacji i użytkownika ... ale nie mogę już tego znaleźć. : /
Jason Salaz
HandsOff pokazuje użycie aplikacji
hsmiths
była automatyczna aktualizacja oprogramowania?
jm666
@ jm666: To był mój pierwszy podejrzany, ale tak nie było
Petruza

Odpowiedzi:

14

Cytat: „Skąd mam wiedzieć, z której aplikacji lub procesu korzysta?”

Możesz spróbować nettop (1) w terminalu. Jest wstępnie zainstalowany i odświeża się co kilka sekund, aby zapewnić pulpit nawigacyjny wszystkich otwartych połączeń sieciowych (procesowo) z ich użyciem. Lepsze niż, lsofponieważ pokazuje również dane użytkowania.

$ nettop

Następnie naciśnij „d” i poszukaj dziwnie wyglądających wpisów lub wpisów o niezmiennie dużym ruchu w kolumnie „bajty wejściowe” lub „bajty wyjściowe”. „D” instruuje nettop, aby pokazywał tylko różnice w każdym odświeżeniu ekranu.

Praktyczne uwagi dotyczące użytkowania:

Jeśli nie rozpoznajesz nazwy procesu, Google go.

Jeśli nie chcesz, aby proces się pojawiał, pobierz pid (numer obok nazwy procesu w nettop) i zabij go kill -9 <pid>. Jeśli to nie rozwiąże problemu, dowiedz się, czy możesz odinstalować proces.

Jeśli jesteś zainteresowany tym, co proces przesyła przez sieć, użyj numeru portu klienta dla tego konkretnego połączenia (np. „53133” z 10.0.0.1:53133->74.125.68.100:80), aby uruchomić tcpdump (1), aby zobaczyć dane w wymienianych pakietach:sudo tcpdump -nnvvXSs 1514 port 53133

Jeśli interesuje Cię miejsce docelowe, z którym rozmawia proces, ale docelowy adres IP nie ma odwrotnej nazwy hosta DNS (jak w poprzednim przykładzie), spróbuj odwiedzić ten adres IP w przeglądarce internetowej jako https: // Adres IP , kliknij ikonę zepsutej kłódki na pasku adresu i wyświetl szczegóły certyfikatu, aby dowiedzieć się, która domena jest tam obsługiwana (* .google.com w tym przypadku). To nie zadziała, jeśli port SSL 443 nie jest otwarty w miejscu docelowym.

2rdmc
źródło
Nie rozumiem powodu głosowania negatywnego. AFAICT, odpowiedź jest dokładnie tym , czego szuka PO (jak monitorować, który proces zużywa przepustowość).
2rdmc
Na pierwszy rzut oka nettopwydaje się jeszcze bardziej tajemniczy niż top. Na przykład nie widzę, jak uzyskać najbardziej aktywne procesy na górze.
hippietrail,
4

Możesz łatwo przeglądać całą aktywność sieciową z Monitora aktywności; jest wbudowany bezpośrednio w OS X.

  • Otwórz Aplikacje> Narzędzia> Monitor aktywności
  • Kliknij kartę Sieć

Monitor aktywności, karta Sieć;  Posortowane według wysłanych pakietów

Michael Thompson
źródło
2
Czy istnieje sposób, aby zobaczyć przepustowość na sekundę, w przeciwieństwie do całkowitej liczby bajtów?
Crummy,
@ Crummy, jeśli klikniesz nagłówki kolumn prawym przyciskiem myszy, możesz zmodyfikować wyświetlane kolumny. Nie jestem pewien, czy jest kolumna na sekundę, ale powinno być coś, co może pomóc.
Michael Thompson
4

Aby uzupełnić (świetną) odpowiedź na nettop - niektórzy narzekali, że dane wyjściowe są tajemnicze. Aby uzyskać czysty wynik, spróbuj:

nettop -P -k state,interface -d

Flagi wyjaśnione:

-P zwija wiersze każdego procesu nadrzędnego

-k state,interface usuwa mniej pouczające kolumny, które stoją między tobą a bajtowymi kolumnami we / wy

-daktywuje opcję delta (tak samo jak naciśnięcie dprzycisku)

Użyj hprzycisku lub uruchom, man nettopaby uzyskać więcej opcji.

berki
źródło
3

Rubbernet to naprawdę świetna aplikacja, która pozwala zobaczyć wykorzystanie sieci na komputerze Mac przez aplikację oraz obsługuje zdalne monitorowanie. Możesz zainstalować wtyczkę Rubbernet na dowolnym komputerze Mac, do którego masz dostęp administracyjny, a następnie monitorować wykorzystanie przepustowości na aplikację przez cały komputer Macintosh w sieci z własnego komputera.

Kosztuje to pieniądze (30 euro na ich stronie internetowej, ale z jakiegoś powodu kosztuje 19,99 USD w Mac App Store, ale mają w pełni funkcjonalną bezpłatną wersję próbną na swojej stronie. Nie kupiłem jeszcze aplikacji, więc nie mogę potwierdzić, że możesz kup jedną licencję na aplikację, a następnie zainstaluj wtyczkę na dowolnej liczbie komputerów Mac za dodatkową opłatą, ale wydaje się, że tak jest.

Deweloperzy to ci sami ludzie, którzy wykonują klienta Linkinus IRC.

usunięto link do gumki, ponieważ prowadzi do strony z fałszywym ostrzeżeniem o aktualizacji przestarzałego Flasha

Robert J Berger
źródło
2

lsof i iftop (bezpośredni link, aby zainstalować pakiet) są najlepsze narzędzia, które przychodzą na myśl.

Zobacz także to pytanie .

Somantra
źródło
Ale nie pokazuje, która aplikacja korzysta z przepustowości
Petruza
@Petruza, możesz zidentyfikować program powiązany z konkretnym połączeniem za pomocą lsof, a następnie monitorować przepustowość połączenia za pomocą iftop. Powinno to wystarczyć do przeprowadzenia audytu podejrzanych połączeń / programów.
Somantra
@Petruza, w twoim przypadku prawdopodobnie zaczniesz od iftop, aby zidentyfikować połączenie wykorzystujące przepustowość, a następnie prześledzić połączenie z aplikacją będącą właścicielem za pomocą lsof lub netstat.
Somantra
1

Kolejną opcją, która nie jest tak dobra, ponieważ nie ma żadnego mechanizmu zdalnego monitorowania i nie wydaje się, aby radziła sobie tak dobrze, jest OS Track . Jest również dostępny w Mac App Store za darmo. Nie podobała mi się ta aplikacja, ponieważ sama wydawała się pochłaniać wiele zasobów. Ale może to być coś, co naprawili w późniejszej wersji.

Robert J Berger
źródło
0

sudo fs_usage może zidentyfikować proces

kowale
źródło