Monitorar o tráfego de rede de um processo e todos os seus subprocessos

5

Eu quero saber a quantidade de tráfego de rede (entrada e saída) em um período de tempo, gerou um processo específico e todos os subprocessos que ele gera.

Desenvolvi um software que contém um "gerenciador de tarefas" que é executado para sempre e não gera tráfego de rede sozinho. Em vez disso, gera filhos "trabalhadores" que fazem o trabalho principal, incluindo a maioria do tráfego de rede. O problema é que vários "trabalhadores" podem trabalhar simultaneamente, e espera-se que um único processo de trabalho seja encerrado após um curto período (algumas horas). Além disso, esses trabalhadores também geram mais subprocessos que geram tráfego como git fetch , que também precisa ser monitorado.

Haverá apenas uma instância de "job manager" e poderá ser iniciada ou eliminada sob demanda no meu servidor de desenvolvimento e teste, que executa o Ubuntu Server 18.04, arquitetura amd64.

Eu quero monitorar o tráfego de rede de todos os trabalhadores e os processos que os trabalhadores geram, por um período prolongado (uma semana ou mais). Existe uma solução?

    
por iBug 21.10.2018 / 07:45

1 resposta

5

Provavelmente, a maneira mais fácil é colocar o gerenciador de tarefas em um namespace de rede. Todos os processos filhos também estarão nesse namespace. Conecte o namespace via veth ou macvlan, meça o tráfego nessa interface.

    
por 21.10.2018 / 09:11