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.
Eu desenvolvi um software que contém um "gerenciador de tarefas" que funciona para sempre e não gera tráfego de rede por conta própria. Em vez disso, gera "trabalhadores" filhos que fazem o trabalho principal, incluindo a maior parte do tráfego de rede. O ponto complicado é 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
esse que também precisa ser monitorado.
Haverá apenas uma instância de "job manager" e ela pode ser iniciada ou encerrada 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). Há uma solução?
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.