This document describes how to use the provisioned IOPS (Input/Output Operations Per Second) volumes with Engine Yard Cloud.
With provisioned IOPS volumes, you can tune your EBS volumes to the performance levels you need. You can configure database and utility instances (for Riak or MongoDB for example) with provisioned IOPS volumes.
We recommend using provisioned IOPS volumes with EBS optimized instances to increase reliability as well as performance levels.
Provisioned IOPS volumes can provide the high level of predictable performance that your database master needs by increasing speed and lowering the variability of I/O responses.
Get started with provisioned IOPS volumes on Engine Yard Cloud
See the database docs for more information about adding a database instance to an environment.
Specify the appropriate volume size.
Note: The ratio of IOPS to GB should be 10:1. For example, 1000 IOPS needs a volume size of at least 100 GB.
Specify the Provisioned IOPS value you need for the volume.
When you create a new environment, you cannot set the provisioned IOPS value for a database replica, its value automatically matches the database master.
The graphic above also shows an EBS optimized instance, appearing with the added "[VO]" in the instance size description.
Click Add to Cluster.
See the related documentation for more information on adding instances to your environment.
Note: You also need to click Apply to update the database.yml file.
Verify provisioned IOPS volumes
Note: When you are testing in staging, consider the differences between your test and production loads.
To verify provisioned IOPS volumes
Ensure that instance provisioning worked and the instance is running.
In general, that is enough of an indication that provisioned IOPS is working fine.
You can use I/O benchmarking utilities to verify that the performance levels are what you need.
Review the Performance notes below for more information.
The following performance notes apply to provisioned IOPS volumes.
Prepare the volume before use in production
First access to a new provisioned IOPS volume can have a 5 to 50 percent reduction in IOPS. For a completely new volume: write to all blocks before using it. For a new volume created from a snapshot: read all the blocks that have data before using it.
Use with EBS optimized instances
Provisioned IOPS volumes are designed to deliver the expected performance when attached to an EBS optimized instance.
Weigh the need for frequent snapshots due to rapidly changing data, versus the expected performance degradation during the snapshot. Create snapshots at off-peak hours whenever possible.
The best measures of provisioned IOPS performance are throughput and average queue length (number of pending I/O requests). Strive to maintain an average queue length (rounded up) of 1 for every 200 provisioned IOPS in a minute.
This table contains troubleshooting tips related to provisioned IOPS volumes.
The new instance appears to be stuck in Chef provisioning.
This can happen when the EBS instance has been provisioned yet the PIOPS volume provisioning did not succeed. Try terminating and reprovisioning the instance. See the known issue for more information.
The instance did not provision and gives an unspecified configuration error, or something like this: InvalidParameterValue => Iops to volume size ratio of 100.0 is too high; maximum is 10.0
Be sure your IOPS to volume size (GB) ratio is 10:1.
This table provides other resources related to provisioned IOPS volumes.