Performance history for volumes

Applies to: Windows Server 2022, Windows Server 2019

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.


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 per second
volume.iops.write per second per second bytes per second
volume.throughput.write bytes per second bytes per second seconds
volume.latency.write seconds
volume.latency.average seconds bytes
volume.size.available bytes

How to interpret

Series How to interpret Number of read operations per second completed by this volume.
volume.iops.write Number of write operations per second completed by this volume. Total number of read or write operations per second completed by this volume. Quantity of data read from this volume per second.
volume.throughput.write Quantity of data written to this volume per second. Total quantity of data read from or written to this volume per second. 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. 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 Reads/sec
volume.iops.write Writes/sec sum of the above Read bytes/sec
volume.throughput.write Write bytes/sec sum of the above Avg. sec/Read
volume.latency.write Avg. sec/Write
volume.latency.average average of the above


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 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.


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 Size
volume.size.available SizeRemaining

Usage in PowerShell

Use the Get-Volume cmdlet:

Get-Volume -FriendlyName <FriendlyName> | Get-ClusterPerf

Additional References