Risposte:
Puoi provare NetHogs .
NetHogs è un piccolo strumento "net top". Invece di suddividere il traffico per protocollo o per sottorete, come la maggior parte degli strumenti, raggruppa la larghezza di banda per processo . NetHogs non si basa su un modulo kernel speciale da caricare. Se improvvisamente c'è molto traffico di rete, puoi avviare NetHogs e vedere immediatamente quale PID sta causando questo. Ciò semplifica l'identificazione dei programmi che sono diventati selvaggi e stanno improvvisamente occupando la tua larghezza di banda.
sudo nethogs -p eth2
. Devi specificare la tua ethernet se non è eth0 di default.
Ce ne sono alcuni elencati qui .
I miei preferiti rimangono comunque iftop e tcpdump . Anche Wireshark è un'ottima opzione.
Prova atop
... per ottenere il massimo da esso potrebbe essere necessario abilitare alcune patch del kernel aggiuntive (patch di contabilità I / O).
Se atop
non è un'opzione, utilizzare netstat -anp --inet
(come root) per fornire un elenco di quali porte TCP / UDP sono utilizzate da quali processi (o eventualmente utilizzare lsof
per quello). Da lì semplicemente iterare su ogni processo che ha un socket aperto e collegarsi ad esso usando ltrace -S
o strace
per guardare le letture, le scritture, gli invii e le ricezioni o usare tcpdump
con un filtro che specifica il tuo indirizzo IP locale e le porte TCP / UDP che erano elencati.
atop
è sicuramente il più conveniente di questi ... se lo hai e il supporto del kernel necessario è installato. In passato ho avuto clienti e datori di lavoro installati sistemi speciali (diversi dalle loro immagini di produzione) al solo scopo di supportare la profilazione degli I / O utilizzando atop
. Tuttavia, queste altre tecniche ti porteranno lì.
Sono sicuro che potremmo anche fare qualcosa usando SystemTap ... ma non conosco ricette facili precotte per farlo. SystemTap è molto uno strumento di analisi della programmazione.
netstat -anp --inet
e controllare le colonne Recv-Q
eSend-Q