Como posso monitorar o uso de E / S de rede por processo no Linux?

26

Tais ferramentas conhecidas como iftop / iptraf exibem E / S de rede por interface e por conexão. Existe uma maneira de ver estatísticas de E / S de rede por processo?

    
por Anonymous 06.07.2009 / 22:00

2 respostas

30

nethogs parece que vai fazer o que você quiser.

EDIT: Eu precisava instalar ncurses-devel, libpcap e libpcap-devel para construir.

    
por 06.07.2009 / 23:48
4

Para descobrir quais conexões estão associadas a cada processo, use lsof. Por exemplo:

lsof | grep TCP

Isso lhe dará uma lista de conexões, como esta:

bash    10887 luke    3u     IPv4 44638801      0t0      TCP littleyerry.example.com:55212->barista.example.com:ldap (ESTABLISHED)
bash    10913 luke    3u     IPv4 44638905      0t0      TCP littleyerry.example.com:55216->barista.example.com:ldap (ESTABLISHED)
ssh     10935 luke    3u     IPv4 44639001      0t0      TCP littleyerry.example.com:55219->barista.example.com:ldap (ESTABLISHED)
ssh     10935 luke    4u     IPv4 44639008      0t0      TCP littleyerry.example.com:59459->launchpad.example.com:ssh (ESTABLISHED)
bash    10938 luke    3u     IPv4 44639107      0t0      TCP littleyerry.example.com:55221->barista.example.com:ldap (ESTABLISHED)

De lá, você deve ser capaz de descobrir cada conexão individualmente usando as ferramentas que você mencionou (iftop, iptraf). Você pode criar um pequeno script para agregar os dados específicos que procura.

    
por 06.07.2009 / 22:56