Amazon: How to know if I need Provisioned IOPS

amazon ec2amazon-rdsamazon-web-servicesiops

We recently moved to Amazon Web Servers and are still learning our way around. Our EC2 Web instance and our RDS MySQL instance (right now we only have 1 of each) seem to be chugging along okay. But I was wondering if we could get even better performance out of them.

We do run a very small site, but certain pages still take awhile to load because of lots of aggregation on the MySQL side.

Here is what our current stats look like:

EC2 Webserver Usage (c3.large)
UE2 Usage

RDS (MySQL) Usage (db.m1.large)
RDS Usage

Of these, only the DB (db.m1.large) is "Provisioned IOPS Optimized".

  1. Do non-"PIOPS Optimized" instances still benefit from Provisioned IOPS? Or should we consider a different instance type for our EC2 Webserver?

  2. With these stats, do we even need Provisioned IOPS? Would we see any benefit?

  3. If Provisioned IOPS will help, how do I know how much I need? How could I test this?

Best Answer

Do non-"PIOPS Optimized" instances still benefit from Provisioned IOPS?

Yes. You benefit from the PIOPS volumes being SSDs under the hood. Optimized instances have dedicated network to the EBS servers, so they get consistent performance. Non-optimized instances interact with EBS along with the rest of their network traffic, so heavy bandwidth use on the physical host can slow you down.

http://aws.typepad.com/aws/2012/08/fast-forward-provisioned-iops-ebs.html

As a point of reference, a standard EBS volume will generally provide about 100 IOPS on average, with the ability to burst to hundreds of IOPS on a best-effort basis.

With this in mind, I suspect you'll see performance improvements from PIOPS on the RDS, as you're averaging 50-100 writes and 200-400 reads on the RDS volume - you're likely in that best-effort burst state most of the time.

Your web server is doing zero IOPS from the charts, so I'd guess everything's already living happily in RAM and not hitting the disk. Do check that it doesn't have a secondary volume you should be looking at instead, though.