Get IO Performance Counter

I need to get page errors and disk IO of the system while a certain process is running.

I can get page errors, but I can not get Disk IO:

$arrayDIO = @() $arrayPf = @() $cmdProcess = start-process cmd -passthru while (-not $cmdProcess.HasExited) { $arrayDIO += %{ (Get-WmiObject Win32_PerfFormattedData_PerfProc_Process).IOWriteOperationsPerSec } $arrayPf += %{ (Get-WmiObject Win32_PerfFormattedData_PerfOS_memory).PageFaultsPerSec } sleep 2 } $arrayPf | Measure-Object -Average -Maximum -Minimum | Out-File -Filepath C:\Details.txt $arrayDIO | Measure-Object -Average -Maximum -Minimum | Out-File -Filepath C:\Details.txt -append 
+4
source share
1 answer

Instead of Get-WMIObject, use the built-in command to get performance data, Get-Counter :

Get-Counter '\Process(*)\IO Data Operations/sec'

Get-Counter '\Memory\Page Faults/sec'

+8
source

Source: https://habr.com/ru/post/1493403/


All Articles