Skip to main content
NetApp Knowledge Base

How do Burst Credits Work in the Context of Element Quality of Service (QoS)?

Views:
603
Visibility:
Public
Votes:
0
Category:
element-software
Specialty:
solidfire
Last Updated:

 

Applies to

  • NetApp Element software
  • quality of service (QoS)

Answer

Overview

Element QoS allows a volume to burst above its configured maxIOPS for a period of time based on available resources of the node it resides on. 

Burst Credits and Burst Time

The IOPS that a volume can consume while bursting and how long it can burst are based on the following factors:

  • The time increment (burstTime) of 60 seconds (this is fixed and can't be modified) -- one or more of these comprise the discrete increments during which a volume bursts
  • The difference between a volume's configured maxIOPS and burstIOPS
  • Credits (burstIOPSCredit) that the volume accrues over time

The burstIOPS, maxIOPS, and burstTime values for a given volume can be obtained through the ListActiveVolumes API call.  Example output:

"qos": {
                "burstIOPS": 1500,
                "burstTime": 60,
                "curve": { <snip> },
                "maxIOPS": 1000,
                "minIOPS": 50
                }

 

The current burstIOPSCredit value for a given volume can be obtained via the GetVolumeStats API call.

The maximum burstIOPSCredit is calculated by multiplying the difference between a volume's maxIOPS and burstIOPS by the burstTime of 60 seconds.  For example:

(burstIOPS - maxIOPS) * burstTime = burstIOPSCredit (Maximum)
(1500 - 1000) * 60 is 500 * 60 = 30000

Using Burst Credits

When a volume bursts, it begins to use burstIOPSCredit to exceed the volume's maxIOPS, up to the limit of burstIOPS.  At a maximum, the volume will consume burstIOPS - maxIOPS each second.  For example:

Actual IOPS:  1500  (note this is equal to the volume's burstIOPS)
burstIOPSCredit:  30000
 
Actual IOPS - maxIOPS = 1500 - 1000 = 500 burstIOPSCredit used per second
burstIOPSCredit / burstIOPSCredit per second = 30000 / 500 = 60 seconds

Thus, in this example the volume is able to burst for a maximum of 60 seconds before its burstIOPSCredit is fully consumed.
 
A less extreme example is the volume bursting above its maxIOPS but remaining below its burstIOPS.  In this case, a volume can burst for longer than 60 seconds.  For example:

Actual IOPS:  1200  (above maxIOPS but below burstIOPS)
burstIOPSCredit:  30000
 
Actual IOPS - maxIOPS = 1200 - 1000 = 200 burstIOPSCredit used per second
burstIOPSCredit / burstIOPSCredit per second = 30000 / 200 = 150 seconds

In this example the volume would be able to burst for 150 seconds.

Accruing Burst Credits

Any volume running below its maxIOPS will also accrue burst credits equivalent to how far below the volume's maxIOPS it is running.  For example:

Actual IOPS:  800
 
maxIOPS - Actual IOPS = 1000 - 800 = 200 burstIOPSCredit accrued per second
burstIOPSCredit (Maximum) / burstIOPSCredit accrued per second = 30000 / 200 = 150 seconds to reach the maximum burstIOPSCredit

In this case, the volume would take 150 seconds (2.5 minutes) to fully accrue its maximum burstIOPSCredit.
 
In the examples given here we have assumed the burstIOPSCredit is at its maximum.  This is not always the case but all of the math works the same way.  A volume's current burstIOPSCredit amount can be viewed via the GetVolumeStats API call.

Exception:  If there is a volume on the node that cannot reach its minIOPS, then burstIOPS are reset for all volumes

Additional Information

additionalInformation_text

 

Sign in to view the entire content of this KB article.

New to NetApp?

Learn more about our award-winning Support

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.