Как измерить объем данных, отправленных и полученных конкретным приложением?

Как измерить объем данных, отправленных и полученных конкретным приложением?

Я хотел бы получить общее количество байтов, отправленных и полученных определенной программой.

Я знаю, что получаю общие данные по всему компьютеру, выбрав пункт «Состояние» в контекстном меню сетевой карты, но не по каждому приложению.

Это возможно?

решение1

С этимМарк Руссиновичинструмент Microsoft

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

Вы можете создать фильтр по имени вашего процесса или PID вФильтрменю. Затем перейдите вИнструментыменю иСводка сети.

Или с

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

Если у вас есть powershell note и вы хотите написать свой собственный инструмент:

Французский:

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

Английский

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

Работайте с этим кодом и этим циклом. Создайте переменную total и назначьте вычисленную сумму в каждой итерации. Настройте КБ, может быть МБ, ГБ ...

Сохраните этот скрипт в файл .ps1, откройтекомандная строкаи выполните этот скрипт (CTRL+C для остановки)

$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

РЕЗУЛЬТАТ (ПРЯМОЙ ЭФИР, такой же, как Linux Watch, например)

FIREFOX: 3256 КБ

Ссылка:

https://blogs.technet.microsoft.com/heyscriptingguy/2011/01/31/использование-powershell-для-упрощения-сбора-информации-о-производительности/

Связанный контент