Odpowiedzi:
Możesz wypróbować NetHogs .
NetHogs to małe narzędzie „net top”. Zamiast rozkładać ruch według protokołu lub podsieci, jak większość narzędzi, grupuje przepustowość według procesu . NetHogs nie polega na ładowaniu specjalnego modułu jądra. Jeśli nagle pojawi się duży ruch w sieci, możesz uruchomić NetHogs i natychmiast sprawdzić, który PID to powoduje. Ułatwia to identyfikację programów, które oszalały i nagle zajmują przepustowość.
sudo nethogs -p eth2
. Musisz podać swój Ethernet, jeśli domyślnie nie jest to eth0.
Jest sporo wymienione tutaj .
Moimi ulubionymi pozostają jednak iftop i tcpdump . Wireshark to również bardzo dobra opcja.
Spróbuj atop
... aby uzyskać jak najwięcej z tego, może być konieczne włączenie dodatkowych poprawek jądra (poprawek rozliczeniowych we / wy).
Jeśli atop
nie ma takiej opcji, użyj netstat -anp --inet
(jako root), aby podać listę portów TCP / UDP, które są używane przez które procesy (lub ewentualnie lsof
do tego celu). Stamtąd po prostu iteruj po każdym procesie, który ma otwarte gniazdo i albo dołącz do niego za pomocą ltrace -S
lub, strace
aby spojrzeć, czyta, zapisuje, wysyła i odbiera, lub użyj tcpdump
z filtrem określającym twój (e) lokalny (e) adres (e) i porty TCP / UDP które zostały wymienione.
atop
jest z pewnością najwygodniejszym z nich ... jeśli masz go i zainstalowaną niezbędną obsługę jądra. W przeszłości miałem klientów i pracodawcy ustanowiły systemy specjalne (różni się od swoich obrazów produkcyjnych) wyłącznie w celu wspierania I / O przy użyciu profilowania atop
. Jednak te inne techniki cię tam doprowadzą.
Jestem pewien, że moglibyśmy również coś zrobić przy użyciu SystemTap ... ale nie znam żadnych łatwych gotowych przepisów na to. SystemTap jest w dużej mierze narzędziem analizy programowania.
netstat -anp --inet
i sprawdzić kolumny Recv-Q
iSend-Q