![如何测量特定应用程序发送和接收的数据量?](https://linux22.com/image/1557745/%E5%A6%82%E4%BD%95%E6%B5%8B%E9%87%8F%E7%89%B9%E5%AE%9A%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%8F%91%E9%80%81%E5%92%8C%E6%8E%A5%E6%94%B6%E7%9A%84%E6%95%B0%E6%8D%AE%E9%87%8F%EF%BC%9F.png)
我想要获取特定程序发送和接收的总字节数。
我知道通过选择网卡上下文菜单中的“状态”,我可以得到整台机器的总数,但不能得到每个应用程序的总数。
这可能吗?
答案1
有了这个马克·鲁西诺维奇Microsoft 工具
https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
您可以在以下位置为进程名称或 PID 创建过滤器:筛选菜单。然后转到工具菜单和网络摘要。
或者
https://docs.microsoft.com/en-us/sysinternals/downloads/tcpview
如果你有 powershell notion 并且想要编写自己的工具:
法语:
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 相同的实时结果)
火狐浏览器:3256 KB
参考: