如何測量特定應用程式發送和接收的資料量?

如何測量特定應用程式發送和接收的資料量?

我想獲取特定程式發送和接收的位元組總數。

我知道我可以透過從網卡的上下文選單中選擇「狀態」來取得整台電腦的總計,但不是每個應用程式的總計。

這可能嗎?

答案1

有了這個馬克魯西諾維奇微軟工具

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

您可以為您的進程名稱或 PID 建立過濾器篩選菜單。然後去工具菜單和網路摘要

或與

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

如果您有 powershell 概念並且想編寫自己的工具:

法語:

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

使用此程式碼和此循環。調整KB,可以是MB、GB...

將此腳本儲存到檔案 .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 相同的 LIVE)

火狐:3256 KB

參考:

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

相關內容