It seems the suggested way to monitor S2D volume performance is to use the following command:
Get-StorageSubSystem Cluster* | Get-StorageHealthReport
Returned values:
CPUUsageAverage : 56.69 % CapacityPhysicalPooledAvailable : 42.34 TB CapacityPhysicalPooledTotal : 145.54 TB CapacityPhysicalTotal : 145.54 TB CapacityPhysicalUnpooled : 0 B CapacityVolumesAvailable : 9.44 TB CapacityVolumesTotal : 46.22 TB IOLatencyAverage : 1.64 ms IOLatencyRead : 1.35 ms IOLatencyWrite : 6.33 ms IOPSRead : 91750.5 /S IOPSTotal : 97417.95 /S IOPSWrite : 5667.45 /S IOThroughputRead : 1.14 GB/S IOThroughputTotal : 1.34 GB/S IOThroughputWrite : 201.9 MB/S MemoryAvailable : 4.28 TB MemoryTotal : 6 TB ExtendedStatus : ReturnValue : 0 PSComputerName :
What’s troublesome is that none of this is usable with typical Powershell-styled coding. I can’t pipe it to SELECT IOPSTotal, IOPSRead, IOPSWrite to get their values; the object is not defined that way.
There are actually two objects returned, the meat of which is in index [0], which is a PSCustomObject. When digging thru documentation (https://technet.microsoft.com/en-us/itpro/powershell/windows/storage/get-storagehealthreport), it appears to actually return an object of type Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageHealthReport
Parsing thru more documentation (https://docs.microsoft.com/en-us/windows-server/failover-clustering/health-service-overview), there are many Powershell commands that can be run for reporting, but none of them do what I want.
The closest thing I’ve found so far is using Performance Counters, specifically Cluster CVSFS, but those numbers don’t match what the StorageHealthReport is giving me.
Ideas? Am I missing something here?
submitted by /u/eponerine
[link] [comments]
The post Alert me Storage Spaces Direct (S2D) – Using Powershell to monitor performance (IOPS, latency, etc) appeared first on How to Code .NET.