One of the best kept secrets of Windows Server 2012 R2 Hyper-V is its built-in storage quality of service (QoS). Hyper-V storage QoS can govern the storage requirements of a VM. This can help solve the noisy neighbor problem where a given VM is consuming too many storage resources – impacting the performance of other VMs. Using storage QoS you can both limit the I/O Operations per Second (IOPs) that a given VM can consume and you can also arrange for VMs to generate a notification if the minimum IOPs value isn’t met. Hyper-V storage QoS is set on a per VHD basis and it can be configured while the VM is running. You can’t use Hyper-V storage QoS with pass-through disks or with shared virtual hard disks.
To set the storage QoS use the Hyper-V Manager and right-click the VM that you want to change. Select Settings then expand the SCSI Controller and select Advanced Features. This will display SCSI Controller Advanced Features dialog with the storage QoS settings that you can see in Figure 1.
To configure Hyper-V’s storage QoS check the Enable Quality of Service management box then supply a value for Minimum or Maximum IOPS. This will set a maximum IOPS value for the VHD. The Maximum setting can stop a VM from consuming excessive storage resources that may impact other VMs. A ballpark value that you might want to start with for a maximum value could be 500 IOPs for a general purpose VM. You might use a higher for a VM that requires more performance. The minimum IOPS value will generate an event notification when the IOPS to a specified virtual hard disk is below the defined threshold.