Ferramenta Linux para monitorar o consumo de largura de banda de um processo específico (PID)

7

Existe uma ferramenta ou um comando que ajuda a capturar o consumo de largura de banda de processos específicos (PID), assim como o Monitor do sistema, mas para um único processo específico, como mostra a seguinte captura de tela

Euficareifelizcomumaferramentadelinhadecomandoque,pelomenos,exportaessehistóricoparaarquivos.(EuestounoUbuntu16.04)

Atualização1

Euqueropelomenosumaferramentacomo Nethogs que pode gerar arquivos (os Nethogs capturam apenas conexões TCP) uma ferramenta semelhante que tem como alvo o TCP e UDP seria ótimo

Atualização 2

Qualquer script, combinação de outras ferramentas (como wireshark) ajudaria também.

    
por AymenDaoudi 01.12.2016 / 02:54

5 respostas

1

Então, como eu não encontrei nenhuma solução fácil / clara / "acertar o chão", tive que fazer uma modesta, correção, refatoração e mais opções por vir.

- > link

    
por 16.03.2017 / 00:06
2

Você já olhou para a ferramenta em cima? De acordo com a página do manual:

"O carregamento da rede é mostrado por processo se o módulo do kernel 'netatop' tiver sido instalado."

    
por 07.01.2017 / 22:34
0

Que tal usar iftop , para analisar a quantidade de tráfego em determinadas portas e, em seguida, usar lsof para determinar qual processo está usando qual porta?

    
por 07.01.2017 / 21:44
0

Nethogs pode ser o que você quer.

debian / ubuntu / etc

apt-get install nethogs

ou rhel / cent / etc

yum install nethogs

Você o executa na interface de rede, por exemplo

nethogs eth0

No entanto, sua saída é a largura de banda por processo, enviada e recebida. Você também pode monitorar várias interfaces.

DESCRIÇÃO        O NetHogs é uma pequena ferramenta 'net top'. Em vez de quebrar o tráfego        por protocolo ou por sub-rede, como a maioria das ferramentas, agrupa        largura por processo - e não depende de um módulo especial do kernel para ser        carregado. Então, se de repente há muito tráfego de rede, você pode disparar        NetHogs e imediatamente ver qual PID está causando isso, e se é        algum tipo de processo de fiação, mate-o.

UPDATE : OP solicitou a saída para o arquivo. Você pode fazer isso com nethogs:

nethogs -d 1 eth0 > output.txt

-d especifica o intervalo de tempo entre gravações ... para que você possa fazer o comando acima e obter o resultado desejado.

UPDATE2 OP diz que TCP e UDP são um requisito. Em seguida, tente usar o jnettop . Um pouco mais velho, mas faz TCP e UDP. Está disponível em deb / ubuntu e acho que os derivados do RHEL. exemplo:

jnettop --display text -t 5 --format CSV

Isso deve ser canalizado para um arquivo.

    
por 07.01.2017 / 22:50
0

Existem duas soluções de monitoramento de gráficos de rede disponíveis que eu conheço. Deve ser possível extrair dados específicos do PID deles.

por 10.01.2017 / 15:39