< Back to blog

Solving EBS Performance Bottlenecks: IOPS and Bandwidth Challenges on gp3 Volumes

Zivan Ori

Zivan Ori

August 14, 2024

5

min read

When diving into AWS storage solutions, you might think performance metrics are straightforward, but there's more to it. AWS Elastic Block Store (EBS) performance has two key metrics: Input/Output Operations Per Second (IOPS) and Bandwidth (BW). These metrics, similar to those used to measure the performance of an SSD or HDD, are crucial for optimizing your storage efficiency and managing costs effectively. Understanding the differences between IOPS and Bandwidth can help you get the most out of your EBS volumes. More so, since the release of gp3 volumes, EBS introduced the ability to provision more bandwidth separately than IOPS (Unlike previous volume types io1/io2), so understanding this relationship is more important than ever. Ready to fine-tune your AWS setup? Let's get started!

What is IOPS?

IOPS, or Input/Output Operations Per Second, measures the performance of read and write operations per second. It indicates how quickly data can be read from or written to storage. High IOPS is crucial for applications requiring rapid transaction processing, such as databases or real-time data analytics.

What is Bandwidth?

Bandwidth, measured in MiB/s, determines the amount of data transferred per second. It is vital for applications that require large data transfers, such as media streaming or big data processing. Higher bandwidth allows for more extensive data transfers within the same time frame.

How IOPS and Bandwidth Limits Come Into Play - Example Calculation

To understand how IOPS and Bandwidth impact each other, we’ll need to first understand the “B” from EBS, and that is - the block. Block storage is a generic name for storage systems that take any data and divide it into equally sized blocks (or at least tries to be equal). 

The way that data is translated into blocks and handled is done by the file-system itself in most cases (some applications like DB’s write directly to the block device and control it themselves but that’s uncommon). It is something we can’t really control, however the block size is what connects between IOPS and BW.

let's look at an example using an EBS volume with a baseline of 3000 IOPS (gp3 volume baseline):

  • Block Size of 16KiB:
    • IOPS = 3000
    • Block Size = 16KiB
    • Bandwidth Calculation: 3000 IOPS x 16KiB = 48MiB/s

Here, the resulting bandwidth of 48MiB/s is within the gp3 baseline bandwidth of 125MiB/s, meaning the EBS volume can handle this workload efficiently without hitting any limits. But what happens when we increase the Block Size to 64KiB? 

  • Block Size of 64KiB:
    • IOPS = 3000 (same as before)
    • Block Size = 64KiB
    • Bandwidth Calculation: 3000 IOPS x 64KiB = 192MiB/s

In this scenario, the bandwidth requirement jumps to 192MiB/s, which exceeds the gp3 baseline bandwidth of 125MiB/s. So unless you purchase additional gp3 bandwidth, the EBS volume will be limited by its bandwidth. This means that despite having IOPS within the range of the gp3 baseline, the larger block size causes the bandwidth limit to become a bottleneck. As a result, to avoid exceeding the bandwidth limit, the effectiveness of the IOPS will be capped at 2000.

Interested in reducing your AWS storage costs? Our solution is designed to optimize EBS usage, helping you manage both performance and expenses effectively. Learn how we can assist.

Optimizing Your EBS Performance

So as we see, there is a trade-off between IOPS and BW which is hard for us to control. As a result, the best way to maximize your EBS volume's performance is to use regular testing and optimization. Meaning, to periodically test your volumes with varied workloads to ensure optimal performance and adjust configurations as necessary.

Specifically, we focus on the 2 parameters can can change if needed:

  1. Monitor and Adjust IOPS:
    • Use AWS CloudWatch to monitor IOPS utilization. Adjust provisioned IOPS based on actual usage to avoid over-provisioning costs. For more details, see the AWS CloudWatch Metrics for EBS
  2. Manage Bandwidth Effectively:
    • Ensure your workloads are appropriately sized to leverage the available bandwidth without exceeding it, leading to throttling.

What Does This Mean for You?

Understanding the nuances of the relationship between IOPS and Bandwidth is crucial for optimizing your AWS EBS performance and managing costs effectively. By choosing the right volume type, monitoring performance metrics, and adjusting configurations based on workload requirements, you can ensure your cloud storage is both efficient and cost-effective.

For more insights on AWS cost management and optimization strategies, explore our previous blog post on uncovering hidden EBS costs and check out our EBS cost-saving tips.

Looking to optimize your EBS storage and cut down costs? Connect with us to explore how our solution can help streamline your cloud operations. Contact us here.

Zivan Ori

Zivan Ori

Zivan is a seasoned leader with decades of experience in high-scale storage systems, both on-prem and in the cloud. In his last role Zivan led the EBS development team at AWS Israel, after the startup he co-founded, E8 Storage, was acquired by Amazon. Zivan filled many executive R&D positions in storage and cyber security startups. He is an alumnus of the prestigious “Talpiot” program, and holds a B.Sc. in Physics & Mathematics from the Hebrew University, and an M.A in Linguistics from UCL.