Ta reda på vilken process som använder för mycket bandbredd i Linux
Medan det finns många nätverksövervakningsverktyg tillgängliga för Linux, övervakar de flesta av nätverkstrafiken till och från din dator eller ett visst gränssnitt. Det finns dock tider när du vill spika ner en viss process som använder upp för mycket bandbredd, och det finns ett verktyg som heter NetHogs, så att du kan göra just det.
I den här artikeln kommer vi att diskutera grunderna i NetHogs samt de funktioner som den tillhandahåller.
nethogs
Enligt verktygssidan är NetHogs ett litet "net top" -verktyg. I stället för att bryta ner nätverkstrafiken per protokoll eller per delnät, grupperar de, som de flesta verktyg, bandbredd genom process.
Om det finns plötsligt mycket nätverkstrafik kan du avfyra NetHogs och omedelbart se vilken PID som orsakar detta, vilket gör det enkelt att identifiera program som har blivit vilda och plötsligt tar upp din bandbredd. Eftersom NetHogs är starkt beroende av "/ proc", kör det för närvarande bara på Linux.
Ladda ner / Installera
Användare av Debian-baserade system som Ubuntu kan enkelt hämta och installera verktyget med följande kommando:
sudo apt-get install nethogs
Om du använder någon annan distribution kan du kolla in de uppgifter som finns på NetHogs officiella webbplats. En annan sak som är värt att notera är att verktyget kräver libpcap
och ncurses
, så se till att du har libncurses5-dev
och libpcap0.8-dev
installerad.
Användande
NetHogs är ganska enkelt att använda; kör bara nethogs
kommandot utan några kommandoradsalternativ, och det visar bandbredd som används av varje process. Följande är ögonblicksbilden av produktionen som produceras av verktyget på mitt system:
Som du kan se på skärmdumpen visar verktyget NetHogs detaljer som PID, användarnamn, process, nätverksgränssnitt som används och hur snabbt data skickas och tas emot.
Ange anpassad uppdateringsfrekvens
Som standard uppdateras NetHogs utdata efter en fördröjning på 1 sekund, men du kan använda alternativet -d
för att ställa in denna fördröjning enligt ditt krav. Till exempel, för att ställa in en fördröjning om 3 sekunder, använd följande kommando:
sudo nethogs -d 3
Ange gränssnitt
Du kan också be NetHogs att övervaka trafik på ett visst nätverksgränssnitt genom att ange gränssnittsnamnet på kommandoraden. Till exempel, för att övervaka trafiken på eth1
kan du använda följande kommando:
sudo nethogs eth1
Obs! Du kan använda alternativet -p
kommandorads för att snusa trafiken i promiskuöst läge, men det rekommenderas inte.
Tangentbordsgenvägar
Verktyget ger också några kortkommandon som du kan använda för att styra hur utmatningen visas. Till exempel, medan kommandot körs kan du trycka på "m" -knappen för att ändra enheterna där skickade och mottagna data visas. Varje gång du trycker på knappen växlar enheten mellan kb / s, kb, b, och mb.
Här är ett exempel där trafik visas i MB:
På samma sätt kan du trycka på "s" och "r" för att sortera utmatningen av data som skickats respektive mottagna. Och som alltid är "q" för att avsluta utmatningen.
Slutsats
NetHogs är idealiskt för fall där du vill fånga och döda processen som fungerar oväntat genom att äta mycket bandbredd. Dessutom är det ett open source-verktyg, vilket innebär att du kan studera hur det fungerar, och kan till och med anpassa det som du vill ha.
Har du någonsin använt NetHogs eller något annat liknande verktyg? Hur var din erfarenhet? Dela dina tankar i kommentarerna nedan.