AWS Official Blog

EBS Provisioned IOPS – Some Interesting Resources

by Jeff Barr | on | in Amazon EC2 |

Our recent release of the EBS Provisioned IOPS feature (blog post, explanatory video, EBS home page) has met with a very warm reception. Developers all over the world are already making use of this important and powerful new EC2 feature. I would like to make you aware of some other new resources and blog posts to help you get the most from your EBS volumes.

 
  • The EC2 FAQ includes answers to a number of important performance and architecture questions about Provisioned IOPS.

  • The EC2 API tools have been updated and now support the creation of Provisioned IOPS volumes. The newest version of the ec2-create-volume tool supports the –type and –iops options. For example, the following command will create a 500 GB volume with 1000 Provisioned IOPS:
    $ ec2-create-volume –size 500 –availability-zone us-east-1b –type io1 –iops 1000
  • Eric Hammond has written a detailed migraton guide to show you how to convert a running EC2 instance to an EBS-Optimized EC2 instance with Provisioned IOPS volumes. It is a very handy post, and it also shows off the power of programmatic infrastructure.
  • I have been asked about the applicability of existing EC2 Reserved Instances to the new EBS-Optimized instances. Yes, they apply, and you pay only the additional hourly charge. Read our new FAQ entry to learn more.
  • I have also been asked about the availability of EBS-Optimized instances for more instance types. We intend to support other instance types based on demand. Please feel free to let us know what you need by posting a comment on this blog or in the EC2 forum.
  • The folks at CloudVertical have written a guide to understanding new AWS I/O options and costs.
  • The team at Stratalux wrote a very informative blog post, Putting Amazon’s Provisoned IOPS to the Test. Their conclusion:
    “Based upon our tests PIOPS definitely provides much needed and much sought after performance improvements over standard EBS volumes.  Im glad to see that Amazon has heeded the calls of its customers and developed a persistent storage solution optimized for database workloads.”

We have also put together a new guide to benchmarking provisioned IOPS volumes. The guide shows you how to set up and run high-quality, repeatable benchmarks on Linux and Windows using the fio, Oracle Orion, and SQLIO tools. The guide will walk you through the following steps:

  • Launching an EC2 instance.
  • Creating Provisioned IOPS EBS volumes.
  • Attaching the volumes to the instance.
  • Creating a RAID from the volumes.
  • Installing the appropriate benchmark tool.
  • Benchmarking the I/O performance of your volumes.
  • Deleting the volumnes and terminate the instance.

Since I like to try things for myself, I created six 100 GB volumes, each provisioned for 1000 IOPS:

Then I booted up an EBS-Optimized EC2 instance, built a RAID, and ran fio. Here’s what I saw in the AWS Management Console’s CloudWatch charts after the run. Each volume was delivering 1000 IOPS, as provisioned:

Here’s an excerpt from the results:

fio_test_file: ( groupid= 0, jobs= 32 ): err= 0: pid= 23549: Mon Aug   6 14:01: 14 2012
  read : io=123240MB, bw=94814KB /s, iops= 5925 , runt=1331000msec
    clat (usec ): min= 356 , max= 291546 , avg= 5391.52, stdev= 8448.68
     lat (usec ): min= 357 , max= 291547 , avg= 5392.91, stdev= 8448.68
    clat percentiles (usec ):
      |   1.00 th= [   418 ],   5.00 th= [   450 ], 10.00 th= [   478 ], 20.00 th= [   548 ],
      | 30.00 th= [   596 ], 40.00 th= [   668 ], 50.00 th= [   892 ], 60.00 th= [ 1160 ],
      | 70.00 th= [ 3152 ], 80.00 th= [ 10432 ], 90.00 th= [ 20864 ], 95.00 th= [ 26752 ],
      | 99.00 th= [ 29824 ], 99.50 th= [ 30336 ], 99.90 th= [ 31360 ], 99.95 th= [ 31872 ],
      | 99.99 th= [ 37120 ]

Read the benchmarking guide to learn more about running the benchmarks and interpreting the results.

– Jeff;