Como medir a quantidade de dados enviados e recebidos por um aplicativo específico?

1

Eu gostaria de obter uma quantidade total de bytes enviados e recebidos por um programa específico.

Sei que recebo totais para a máquina inteira selecionando Status no menu de contexto da placa de rede, mas não por aplicativo.

Isso é possível?

    
por AngryHacker 05.04.2018 / 20:21

1 resposta

3

Com esta ferramenta Mark Russinovich Microsoft

https://docs.microsoft.com/en-us/sysinternals/downloads/procmon

Você pode criar um filtro para o nome do processo ou PID no menu Filtro . Em seguida, vá para o menu Ferramentas e Resumo da rede .

Ou com

https://docs.microsoft.com/en-us/sysinternals/downloads/tcpview

Se você tem uma noção de powershell e deseja criar sua própria ferramenta:

Francês:

get-counter "\Processus(firefox*)\Nombre d’octets lus/s" -Continuous | foreach {
    [math]::round((($_.countersamples.cookedvalue | measure -sum).sum / 1KB), 2)
}

inglês

get-counter "\Process(firefox*)\IO Read Bytes/sec" -Continuous | foreach {
    [math]::round((($_.countersamples.cookedvalue | measure -sum).sum / 1KB), 2)
}

Trabalhe com este código e esse loop .Crie uma variável total e atribua a soma calculada em cada iteração. Ajuste KB, pode ser MB, GB ...

Salve este script em um arquivo .ps1, abra o prompt de comando e execute este script, (CTRL + C para parar)

$process="firefox"
$totalKB = 0
while($true){    
    get-counter "\Process($process*)\IO Read Bytes/sec" | foreach {
        $totalKB += [math]::round((($_.countersamples.cookedvalue | measure -sum).sum / 1KB), 2)
    }
    Write-Host -NoNewline -ForegroundColor Yellow ("'r"+$process.ToUpper()+": "+([string]$totalKB)+" KB    ")
    Start-Sleep -Milliseconds 500
}
write-host

RESULT (ao mesmo tempo que o Linux Watch, por exemplo)

FIREFOX: 3256 KB

Ref:

https://blogs.technet.microsoft.com/heyscriptingguy/2011/01/31/use-powershell-to-simplify-collecting-performance-information/

    
por 05.04.2018 / 21:23