Skip to main content

Exciting new changes are coming to the Knowledge Base site soon!
Starting April 4, 2023, you will notice Support-Specific categorization and improvements to the search filters on the site. In May, we will be launching a new and enhanced Site UI and Navigation. To know more, read our Knowledge Article.

NetApp Knowledge Base

What is Quality of Service (QoS) in ONTAP?

Last Updated:


Applies to



Quality-of-Service is a way to throttle storage objects, but also includes performance monitoring of volumes with the QoS statistics commands

Note: Adaptive QoS is slightly different and is covered in the article What is Adaptive QoS and how does it work?

What is a storage object?
  • A Vserver with FlexVol volumes
  • A FlexVol volumeQoS workload
  • A LUN
  • A file (typically represents a virtual machine)
  • Can include system processes internal to ONTAP, called a System-defined workload

Note: Beginning with ONTAP 9.2, Adaptive QoS was introduced for SAN workloads, and expanded to NAS in ONTAP 9.3. For more information, please refer to the Adaptive QoS page.

When to use QoS?
  1. Prevent workloads from impacting performance
  2. Enable critical applications to achieve consistent performance
  3. Monitor and manage application workloads
What are the components in a QoS policy?
  1. Workload types include:
    1. User-defined workload
      1. Beginning with Clustered Data ONTAP 8.3, all created FlexVols automatically are assigned a workload ID
      2. I/O to storage objects that are not assigned to policy groups belong to the "User-Default" workload
    2. System-defined workload
    1. User-defined policy group - Enforces a maximum throughput limit on the storage objects that belong to the policy group by throttling input/output (I/O) requests
    2. System-defined policy group - Manages internal work that the cluster performs
  2. QoS policy: The maximum IOPs and/or throughput allowed
What are the rules for assigning storage objects to policy groups?
  • Storage objects and policy groups must belong to the same Vserver
  • Specify the Vserver to which the policy group belongs when you create the policy group
  • Multiple policy groups can belong to the same Vserver
  • Multiple storage objects can be put in a single policy group
  • A single storage object can be put in a single policy group
  • A storage object cannot have two different policy groups assigned
  • Nested storage objects cannot belong to policy groups:
If you assign a... Then you cannot assign...
Vserver to a policy group Any storage objects contained by the Vserver to a policy group
Volume to a policy group The volume's containing Vserver or any child LUNs or files to a policy group
LUN to a policy group The LUN's containing volume or Vserver to a policy group
File to a policy group The file's containing volume or Vserver to a policy group
What is not supported with QoS?
  • Aggregates
  • Entire nodes
  • Load-sharing mirrors
  • Node root volumes
  • Data ONTAP 7-mode FlexCache volumes

Note: The 7-mode FlexCache uses a different technology than the ONTAP 9 version. For more information see the FlexCache Techncial Report.

What are the configuration limits in QoS in ONTAP 9?

The following table shows the maximum number of workloads and policy groups by ONTAP 9 version:

Workload Support 9.3 and earlier 9.4 and later
Maximum workloads per cluster 12,000 40,000
Maximum workloads per node 12,000 40,000
Maximum policy group 12,000 12,000
What should the QoS Limit be set to?
  1. Using Active IQ (AIQ) or Active IQ Unified Manager (AIQUM), determine the IOPs and throughput of the volume
  2. Once the top value is seen, set a value incrementally smaller than the peaks
  3. Incrementally set the throttle value lower until latency is at desired levels

Note: ONTAP will adjust QoS throttles almost instantly, so you can monitor live with QoS statistics commands.

Additional Information

Example of creating a QoS policy:

Cluster::> qos policy-group create -policy-group vol1-qos -vserver svm0 -max-throughput 50iops,10MB/s -min-throughput 0

Cluster::> vol modify -volume vol1 -qos-policy-group vol1-qos
Volume modify successful on volume test_cifs_homedir of Vserver svm0.

Cluster::> qos policy-group show
Name             Vserver     Class        Wklds Throughput   Is Shared
---------------- ----------- ------------ ----- ------------ ---------
vol3-qos         svm0        user-defined 0     0-3000IOPS,200MB/s
vol1-qos         svm0        user-defined 1     0-50IOPS,10MB/s
2 entries were displayed.

Cluster::> vol show -fields volume,qos-policy-group,qos-adaptive-policy-group
vserver         volume qos-policy-group qos-adaptive-policy-group
--------------- ------ ---------------- -------------------------
Cluster-node1   vol0   -                -
svm0            svm_root
                       -                -
svm0            vol1
                       vol1-qos         -
svm0            vol3
                       vol3-qos         -
3 entries were displayed.



Scan to view the article on your device