VAST QoS enables administrators to control the maximum performance of specific views or users by setting limits on bandwidth (BW) and IOPS. This is used to:
Prevent “noisy neighbor” workloads from consuming excessive resources.
Define SLA-based service tiers for tenants.
Support usage-based billing for cloud providers.
QoS is enforced by introducing I/O latency when limits are exceeded. The system divides time into 0.1-second windows—for example, a 1 GB/s cap allows 100 MB per window. If usage exceeds that, I/Os are delayed until the next window begins.
QoS Static Limits Parameters
Parameter | Description |
|---|---|
Max | Sustained performance cap for read/write BW or IOPS |
Burst | Temporary allowance above Max for short workloads |
Credit | Total burst volume (in MB or IOs) before reverting to Max |
Credits accumulate when usage is below Max and are spent during bursts.
Example:
Max = 100 MB/s, Burst = 500 MB/s, Credit = 24,000 MB → allows 60 seconds of burst.
Burst Time = Credit / (Burst − Max) = 24,000 / (500 − 100) = 60 seconds
Only the portion above 100 MB/s uses credits. Usage below Max does not.
Recommended Settings for Static Limits
Avoid setting Max < 100 MB/s, as this can introduce high latency.
Always define a Burst to handle short spikes in demand.
Set Burst = 5× Max, and configure Credits to allow 60 seconds of bursting.
Burst value must always be higher than the Max value.
Example:
Tier | Max (MB/s) | Burst (MB/s) | Credits |
|---|---|---|---|
Bronze | 100 | 500 | 24,000 |
Silver | 200 | 1,000 | 48,000 |
Gold | 500 | 2,500 | 120,000 |
QoS Based on Capacity
In addition to the above static limits (Max, Burst, Credit), VAST allows configuring QoS based on capacity, either by used or provisioned space.
Available under the "Capacity Limits" section of the QoS policy.
Supports setting MB/s or IOPS per GB for both reads and writes.
Useful for isolating tenants or workloads based on their storage footprint, enabling CSPs to offer performance-grade SLAs per capacity.
Best Practices:
Avoid setting overly low per-GB values, as they can excessively throttle workloads and prevent the use of burst or credit mechanisms to accommodate performance spikes.
Capacity-based QoS is an alternative, not a replacement, for static limits. Use both in combination for better control.
For example, when using used capacity as the basis for QoS, it's recommended to also define a static Max limit as an upper bound — e.g., 100 MB/s per GB, capped at 10,000 MB/s total.
Configuring QoS via Web GUI
Go to Element Store → QoS Policies
Click Create or edit an existing policy
Set values for Max, Burst, and Credit
Click Apply

Configuring QoS via web GUI
Assign the policy to the relevant view
Go to Element Store → Views (for view assignment)
Right-click on the relevant view and choose Edit
In the QoS Policy dropdown, select the desired policy
Click Apply

Assign the policy to the relevant view
Monitoring QoS
To track the impact of QoS enforcement in real time, VAST provides the metric qos_wait_ms, which measures the average delay per I/O operation due to QoS throttling.
Metric Name:
vast_view_metrics_ViewMetrics_qos_wait_for_budget_time_avgDescription: Average delay (in milliseconds) added to I/O operations due to QoS enforcement.
Interpretation:
Low values (near zero) indicate no throttling.
High values suggest the workload is being actively throttled and may benefit from a higher Max or Burst setting.
This metric can be monitored via:
VAST Web UI – View-level performance cards.
Grafana Dashboards – Predefined panels for QoS analysis.
Prometheus / REST API – Use for custom dashboards and alerts.
CLI examples for setting QoS
CLI Example – Create QoS Policy (Static Limits)
vastpy-cli post qospolicies name=static-limit-policy bw_read_min=1000 bw_read_max=5000 bw_read_burst=7000 bw_read_credit=10000 bw_write_min=1000 bw_write_max=5000 bw_write_burst=7000 bw_write_credit=10000 CLI Example – Create QoS Policy (Capacity-Based Limits)
vastpy-cli post qospolicies name=perf-per-gb bw_per_gb_read=100 bw_per_gb_write=100 use_capacity=true max_bw_read=10000 max_bw_write=10000 CLI Example – Assign QoS Policy to a View
vastpy-cli patch views/<view-id> qos_policy_id=<policy-id>