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

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

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

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

Isso é possível?

Responder1

Com issoMark RussinovichFerramenta Microsoft

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

Você pode criar um filtro para o nome do seu processo ou PID emFiltrocardápio. Então vá paraFerramentascardápio eResumo da rede.

Ou com

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

Se você tem noção de PowerShell e deseja escrever 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 este 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, abraprompt de comandoe 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

RESULTADO (AO VIVO igual ao Linux Watch, por exemplo)

FOGO: 3.256 KB

Referência:

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

informação relacionada