3

I'm looking for a way to quickly (via PowerShell Get-Counter) show me the I/O load (IOPS preferable to bytes) on a certain physical disk, along with the file access information - presumably the file path.

Essentially what I want is the information that's offered in Resource Monitor in the Disk tab where it shows which File is consuming how much disk activity. In RM, it's bytes, but hopefully using the appropriate counters in Get-Counter we can show IOPS per file.

All of this being done in an attempt to track IOPS being used by a particular HyperV virtual disk file on an SMB file share. I'd like a quick Powershell way of showing disk IOPS per VM using built-in MS components such as perfmon.

Little background: HyperV VMs are VM roles in a Failover Cluster accessing one of two different SMB 3.0 file shares; shares themselves are Failover Cluster roles provided by SOFS. Disk information is drawn from the "PhysicalDisk" counter on the SOFS nodes.

I already am able to see total IOPS per disk: Get-Counter -ComputerName stor2 '\PhysicalDisk(26)\Disk Transfers/sec' -Continuous; but I would like to expand this to show me which VM is performing how many IOPS.

Thanks in advance to this great community!

maloitpro
  • 41
  • 4

1 Answers1

6

You can't do that. There's no way to traverse back IRP owner in Windows storage stack: you have to have a (pretty complex BTW) 3rd party filter driver and associated wrapping. SAN vendors like say Tintri who implement strict QoS do similar things but they deal with file rather then block protocols.

BaronSamedi1958
  • 13,676
  • 1
  • 21
  • 53