¿Cómo medir la cantidad de datos enviados y recibidos por una aplicación específica?

¿Cómo medir la cantidad de datos enviados y recibidos por una aplicación específica?

Me gustaría obtener una cantidad total de bytes enviados y recibidos por un programa específico.

Sé que obtengo totales para toda la máquina seleccionando Estado en el menú contextual de la Tarjeta de red, pero no por aplicación.

es posible?

Respuesta1

Con esteMarcos Russinovichherramienta de microsoft

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

Puede crear un filtro para el nombre de su proceso o PID enFiltrarmenú. Luego ve aHerramientasmenú yResumen de red.

O con

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

Si tienes nociones de PowerShell y quieres escribir tu propia herramienta:

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)
}

Trabaje con este código y este bucle. Cree una variable total y asigne la suma calculada en cada iteración. Ajustar KB, puede ser MB, GB...

Guarde este script en un archivo .ps1, ábralosímbolo del sistemay ejecute este script, (CTRL+C para detener)

$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 (EN VIVO igual que Linux Watch, por ejemplo)

FIREFOX: 3256 KB

Árbitro:

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

información relacionada