Performance history for volumes
This sub-topic of Performance history for Storage Spaces Direct describes in detail the performance history collected for volumes. Performance history is available for every Cluster Shared Volume (CSV) in the cluster. However, it is not available for OS boot volumes nor any other non-CSV storage.
Note
It may take several minutes for collection to begin for newly created or renamed volumes.
Series names and units
These series are collected for every eligible volume:
Series | Unit |
---|---|
volume.iops.read |
per second |
volume.iops.write |
per second |
volume.iops.total |
per second |
volume.throughput.read |
bytes per second |
volume.throughput.write |
bytes per second |
volume.throughput.total |
bytes per second |
volume.latency.read |
seconds |
volume.latency.write |
seconds |
volume.latency.average |
seconds |
volume.size.total |
bytes |
volume.size.available |
bytes |
How to interpret
Series | How to interpret |
---|---|
volume.iops.read |
Number of read operations per second completed by this volume. |
volume.iops.write |
Number of write operations per second completed by this volume. |
volume.iops.total |
Total number of read or write operations per second completed by this volume. |
volume.throughput.read |
Quantity of data read from this volume per second. |
volume.throughput.write |
Quantity of data written to this volume per second. |
volume.throughput.total |
Total quantity of data read from or written to this volume per second. |
volume.latency.read |
Average latency of read operations from this volume. |
volume.latency.write |
Average latency of write operations to this volume. |
volume.latency.average |
Average latency of all operations to or from this volume. |
volume.size.total |
The total storage capacity of the volume. |
volume.size.available |
The available storage capacity of the volume. |
Where they come from
The iops.*
, throughput.*
, and latency.*
series are collected from the Cluster CSVFS
performance counter set. Every server in the cluster has an instance for every CSV volume, regardless of ownership. The performance history recorded for volume MyVolume
is the aggregate of the MyVolume
instances on every server in the cluster.
Series | Source counter |
---|---|
volume.iops.read |
Reads/sec |
volume.iops.write |
Writes/sec |
volume.iops.total |
sum of the above |
volume.throughput.read |
Read bytes/sec |
volume.throughput.write |
Write bytes/sec |
volume.throughput.total |
sum of the above |
volume.latency.read |
Avg. sec/Read |
volume.latency.write |
Avg. sec/Write |
volume.latency.average |
average of the above |
Note
Counters are measured over the entire interval, not sampled. For example, if the volume is idle for 9 seconds but completes 30 IOs in the 10th second, its volume.iops.total
will be recorded as 3 IOs per second on average during this 10-second interval. This ensures its performance history captures all activity and is robust to noise.
Tip
These are the same counters used by the popular VM Fleet benchmark framework.
The size.*
series are collected from the MSFT_Volume
class in WMI, one instance per volume.
Series | Source property |
---|---|
volume.size.total |
Size |
volume.size.available |
SizeRemaining |
Usage in PowerShell
Use the Get-Volume cmdlet:
Get-Volume -FriendlyName <FriendlyName> | Get-ClusterPerf