performance - 使用 Powershell 的进程的网络使用情况

标签 performance powershell powershell-2.0

我想计算特定进程发送和接收的字节数。我想为此使用 powershell。
我可以使用资源监视器-> 网络事件来做一些事情。
我如何使用 get-counter 做到这一点?

最佳答案

你不能,看来。我绝对找不到性能监视器正在读取的计数器,尽管其他人可能会插话。可能还有其他方法而不是 get-counter ,但这是您特别要求的。

查看计数器,您会发现最接近的是进程对象上的“IO Read Bytes/sec”和“IO Write Bytes/sec”计数器。

这些问题的问题在于,它们不仅仅计算网络事件。 perfmon 中的描述说:

"This counter counts all I/O activity generated by the process to include file, network and device I/Os."



话虽如此,如果您知道您只想监控或主要写入网络连接的进程,这可能比根本不测量任何东西要好。

你会这样做(我将使用 Chrome 作为示例,因为它现在可以方便地运行和使用数据):
get-counter "\Process(chrome*)\IO Read Bytes/sec"

这只会给你一次性阅读。如果您想继续阅读,可以添加连续开关。

返回的 PerformanceCounterSampleSet 对象并不完全适合使用,但您可以在 $obj.countersamples.cookedvalue 中找到实际读数。

该列表将相当长(如果您像我一样浏览)。 Chrome 在许多单独的进程中运行,因此我们将做一些数学运算以将它们全部加起来,并以 KB 显示。

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

运行它只会持续输出 Chrome 正在使用多少 KB/s 的读数。

关于performance - 使用 Powershell 的进程的网络使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15749139/

相关文章:

performance - 处理 "all combinations"项目的最佳方法是什么?

python - 使用基于身份的身份验证的 Azure Function App Blob 触发器返回 powershell 错误

asp.net - VimService55.XmlSerializers.dll 中发生类型 'System.StackOverflowException' 的未处理异常

powershell 脚本 - 使用 Windows 调度程序启动后的不同行为

c++ - 使用 mmap 时性能下降

python - 为什么这两种计算总和的方法会产生不同的运行时间

performance - Firefox 上的 react 速度比 Chrome 慢得多?

powershell - 我的 PowerShell 脚本仅在从 ISE 运行时有效

powershell - 使用Powershell将信息发送到网站而无需打开Web浏览器

powershell - 有什么方法可以查看内置Powershell cmdlet的源代码吗?