keepcalculator

06 Numbers and Powers

Storage Quality of Service: What It Is & How It Works

Card No. 06·14550 · Updated · Standard formula, shown below

Max throughput 156.2 MB/s
Read IOPS
3,500 IOPS
Result
Write IOPS
1,500 IOPS
Result
IOPS limit
5000 IOPS
You entered
You enter
IOPS limit, Read percentage, Average I/O size
You get
Max throughput, Read IOPS, Write IOPS
Rounding
1 dp · 0 dp

Storage quality of service (QoS) is a set of techniques that manage and prioritize storage performance—like IOPS, throughput, and latency—so that critical applications get the speed they need without being slowed down by noisy neighbors. You set limits or guarantees on a storage system (often a SAN, NVMe-oF array, or cloud volume), and the system enforces them per virtual machine, container, volume, or host. This article explains how storage QoS works, why it matters, and how to choose the right settings for your workloads.

Formula

The core relationship in storage QoS is between IOPS, I/O size, and throughput:

Throughput (MB/s) = (IOPS × I/O size in KB) / 1024

Where:

  • IOPS = input/output operations per second (a count, no unit)
  • I/O size = average size of each read or write operation, in kilobytes (KB)
  • Throughput = actual data transfer rate, in megabytes per second (MB/s)

This is the fundamental math behind any QoS limit. If you cap a volume at 5,000 IOPS and the average I/O is 32 KB, the maximum throughput is (5,000 × 32) / 1024 = 156.25 MB/s. The read/write split just tells you how that throughput is divided between reads and writes.

Worked Example

Using the defaults from the calculator above:

  1. IOPS limit = 5,000
  2. Read percentage = 70%
  3. Average I/O size = 32 KB

Step 1: Calculate max throughput: (5,000 × 32) / 1024 = 160,000 / 1024 = 156.25 MB/s

Step 2: Read IOPS = 5,000 × 0.70 = 3,500

Step 3: Write IOPS = 5,000 × 0.30 = 1,500

So with a 5,000 IOPS cap, 70% reads, and 32 KB I/Os, you get a maximum of 156.25 MB/s, with 3,500 read operations and 1,500 write operations per second.

Why Storage QoS Matters

In shared storage environments, many workloads compete for the same disk spindles, SSDs, or network links. Without QoS, one aggressive workload—say, a database backup or a virus scan—can saturate the array and cause latency spikes for everything else. Storage QoS prevents that by enforcing performance boundaries. It also helps with:

  • Cost control: You can buy a smaller, cheaper tier of storage and guarantee that critical apps still meet their SLAs by giving them priority.
  • Predictability: Performance becomes consistent, so you can plan capacity and avoid surprise slowdowns.
  • Multi-tenancy: In a cloud or virtualized environment, each tenant gets a fair share of the storage, and no single tenant can degrade others.

How Storage QoS Works

Storage QoS is implemented at different layers, depending on the system:

  • Hypervisor-level: VMware vSphere, Microsoft Hyper-V, and KVM can set IOPS or throughput limits per virtual disk or VM. The hypervisor throttles I/O before it reaches the storage array.
  • Storage array-level: Enterprise arrays (from vendors like Dell, NetApp, HPE, Pure) have built-in QoS that can shape traffic per volume, LUN, or host. This is more precise because the array sees all I/O.
  • Cloud-level: AWS EBS, Azure Managed Disks, and Google Cloud Persistent Disks offer performance tiers with baseline and burst IOPS. You choose a volume type that guarantees a certain performance level, and the cloud provider enforces it.

Mechanisms include limiting (capping maximum IOPS/throughput), guaranteeing (reserving a minimum), and prioritization (assigning different weights to different queues). Most systems use a token bucket or leaky bucket algorithm: each workload gets a budget of IOPS that refills over time. If a workload exceeds its budget, its I/O requests are queued or delayed.

How to Choose QoS Settings

Choosing the right QoS parameters depends on your application’s profile. Here are the key steps:

  1. Profile your workload: Measure current IOPS, throughput, and latency during peak hours. Use tools like iostat, esxtop, or cloud monitoring.
  2. Identify critical vs. best-effort: Databases, ERP systems, and core VMs get high limits; dev/test, backups, and file shares get lower limits.
  3. Set limits based on real usage: If a database uses 3,000 IOPS on average, set a limit of 5,000 to allow headroom, not 20,000.
  4. Start with limits, not guarantees: Limits are easier to adjust and don’t reserve capacity. Guarantees can waste storage if the workload doesn’t use them.
  5. Monitor and adjust: QoS is not set-and-forget. Watch latency and throttling events, then tune.

Common Problems and Misconceptions

One common misconception is that higher IOPS always means better performance. In reality, latency matters more for many applications. A workload that needs 1 ms latency will not be happy with 10,000 IOPS if each I/O takes 5 ms. QoS can help latency by preventing queues, but it cannot fix an overloaded array.

Another issue is throttling at the wrong layer. If you set a limit on the hypervisor but the array has its own limits, the effective performance is the minimum of the two—and you may not know which one is binding. Always check both layers.

Also, beware of bursting. Many systems allow short bursts above the limit to handle spikes. This is good, but if every workload bursts at the same time, the array can still become saturated. QoS does not create extra capacity; it only distributes what exists.

Storage QoS vs. Other Performance Tools

Storage QoS is often confused with other performance features:

  • Thin provisioning: Allocates space on demand, not performance. Thin provisioning can cause performance issues if the underlying pool runs out of space, but it doesn’t manage IOPS.
  • RAID levels: RAID affects performance (e.g., RAID 10 is faster than RAID 5), but it’s a physical layout choice, not a dynamic control.
  • Caching: Read/write caches speed up I/O by storing hot data in fast media. QoS can work alongside caching, but caching is not QoS.
  • Traffic shaping: In networking, QoS shapes packets; storage QoS shapes disk I/O. Both use similar algorithms but on different resources.

The key difference is that QoS is policy-based and can be changed on the fly, while RAID and caching are static configurations.

Costs and Trade-offs

Storage QoS itself is a software feature, so it doesn’t directly cost money—but it has trade-offs:

  • Over-provisioning: If you set guarantees too high, you reserve capacity that other workloads can’t use, leading to wasted storage and higher costs.
  • Complexity: Managing QoS policies adds administrative overhead. You need monitoring and tuning, which takes time.
  • Performance overhead: The throttling mechanism adds a tiny amount of latency (microseconds) to every I/O. In most cases, this is negligible, but in ultra-low-latency environments (like HFT), it can matter.

On the other hand, the cost of not having QoS can be much higher: application downtime, missed SLAs, and unhappy users. For most enterprises, the benefits outweigh the costs.

Safety and Best Practices

There are no physical safety risks with storage QoS, but there are operational best practices:

  • Always test in a non-production environment first. Changing QoS on a live database can cause unexpected throttling.
  • Document your policies. If a VM is slow, you need to know which QoS limit is applied.
  • Use monitoring alerts. Set alerts when a workload hits 80% of its limit, so you can adjust before problems occur.
  • Remember the math: Use the IOPS-to-throughput formula to ensure your limits are realistic. A limit of 100,000 IOPS with 64 KB I/Os requires 6,400 MB/s—most arrays can’t do that.

Frequently Asked Questions

What is the difference between IOPS and throughput?

IOPS measures the number of read/write operations per second, while throughput measures the amount of data transferred per second (MB/s). They are related by the I/O size: throughput = IOPS × I/O size. A workload with many small I/Os (like a database) is IOPS-bound; a workload with large sequential I/Os (like video streaming) is throughput-bound.

Can storage QoS guarantee a specific latency?

No. QoS can limit IOPS and throughput, which indirectly helps latency by preventing queues, but it cannot directly control latency. Latency depends on the underlying hardware, network, and workload. Some advanced systems offer “latency-based� QoS that prioritizes I/Os to meet a target, but it’s not a hard guarantee.

What happens if I set a QoS limit too low?

If a limit is too low, the workload will be throttled: I/O requests will be delayed, causing higher latency and reduced performance. You may see timeouts or application errors. It’s better to start with a limit slightly above average usage and adjust based on monitoring.

Does storage QoS work the same in the cloud?

Cloud providers offer similar concepts but with different terminology. AWS EBS has volume types with baseline and burst IOPS; Azure Managed Disks have performance tiers; Google Cloud Persistent Disks have IOPS and throughput limits per size. You don’t set policies per VM, but you choose a disk type that meets your performance needs. The provider enforces those limits.

Is storage QoS the same as storage tiering?

No. Storage tiering moves data between different tiers (e.g., SSD, HDD) based on access frequency. QoS manages performance limits within a tier. They can be used together: tiering reduces cost by moving cold data to slow disks, while QoS ensures hot data on fast disks gets the right performance.

Related

Formula used
in iops_limit | IOPS limit | IOPS | 5000 | 1 | 1000000
in read_pct | Read percentage | % | 70 | 0 | 100
in avg_io_size | Average I/O size | KB | 32 | 1 | 1024
out max_mbps | Max throughput | MB/s | (iops_limit * avg_io_size) / 1024 | 1
out read_iops | Read IOPS | IOPS | iops_limit * (read_pct / 100) | 0
out write_iops | Write IOPS | IOPS | iops_limit * (1 - read_pct / 100) | 0

Each line is one input (in, sel, list) or one result (out: label, unit, formula, decimals). How the calculators work

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →