Skip to main content
NetApp Knowledgebase

What is Performance Budgeting?

Last Updated:

Applies to

  • Active IQ Unified Manager


Management of storage workloads through performance service levels (PSLs) represents one of the approaches to achieve consistent differentiated performance from the ONTAP clusters. The PSLs define Service Level Objectives (SLOs) and Service Level Agreements (SLAs) on workloads so that they receive the level of performance that matches their priorities. In the PSL the SLO is defined as the “peak IOPS” value and the SLA is defined as the “expected IOPS” allocated for the workload. Consequently, a budgeting service is defined based on the SLAs and SLOs assigned to the workloads in a storage (ONTAP) system. Specifically, for every workload, the SLA setting is considered as a guaranteed performance while the SLO is considered as a targeted performance. By summing up all SLAs across all the workloads served or residing on a storage resource (such as a node or storage pool -i.e., ONTAP aggregate) then an estimate of all the guaranteed and targeted allocated IOPS is estimated for the specific resource. Per resource (node or storage pool) the PSL managed workload allocated IOPS

  • Guaranteed allocated IOPS = sum across all PSL workloads per resource of “expected IOPS”
  • Targeted allocated IOPS = sum across all PSL workloads per resource of “targeted IOPS”

For workloads that are not managed by PSLs, the IOPS are accounted as:

  • Expected used IOPS = sum across all non-PSL workloads per resource of 75th historical IOPS  
  • Peak used IOPS = sum across all non-PSL workloads per resource of max historical IOPS

The accounting of allocated and used IOPS for individual resources and their associated workloads is done by combining the two sets of IOPS defined above.

  • Expected IOPS = Guaranteed allocated IOPS + Expected used IOPS
  • Targeted IOPS = Targeted allocated IOPS + Peak used IOPS

Given that allocated IOPS via the PSL workloads may not be used continuously by an individual workload, the concept of the overprovisioning of SLOs and SLAs is introduced to overcome the problems of overallocation of IOPS through the PSL management. Specifically, per resource, analytics are used to determine the optimal amount of IOPS they can deliver, mimicking the type of IOPS currently served by the resource. Pairing the optimal IOPS with the overprovisioning factors allows for estimated of the overall resource performance capabilities

  • Resource optimal expected IOPS = SLA_Overprovisioning * Expected IOPS
  • Resource optimal targeted IOPS = SLO_Overprovisioning * Targeted IOPS

Through the estimate of Resource optimal expected/targeted  IOPS the budgeting is done every time a request is received to change the allocation of IOPS for the resource. Requests that change the allocation of IOPS are provisioning of new workloads and PSL assignment on existing workloads. If the new request results in Resource optimal expected IOPS < Expected IOPS then the request is failed as there are no IOPS available to satisfy the request. Currently the tuning of the outcome from the budgeting service is done by adjusting the overprovisioning value. The overprovisioning values currently are stored in a configuration MySQL table and can be adjusted only via assistance from NetApp Support. The default overprovisioning factors are SLA_Overprovisioning=4 and SLO_Overprovisioning=10.

Additional Information