Some reference links:
- http://orion.heroku.com/past/2009/7/29/io_performance_on_ebs
- http://victortrac.com/EC2_Ephemeral_Disks_vs_EBS_Volumes
- http://stu.mp/2009/12/disk-io-and-throughput-benchmarks-on-amazons-ec2.htmlSome reference links:
- http://orion.heroku.com/past/2009/7/29/io_performance_on_ebs
- http://victortrac.com/EC2_Ephemeral_Disks_vs_EBS_Volumes
- http://stu.mp/2009/12/disk-io-and-throughput-benchmarks-on-amazons-ec2.htmlexample: http://developer.amazonwebservices.com/connect/message.jspa?...
However, I've decided that the other benefits of EBS volumes are just to important to give up on (snapshotting, lazy-load, re-attachment). Instead, I plan to monitor for such situations and blow away the node when I detect it.
But really, I don't understand why Amazon doesn't fix this. It's happened to me 3-4 times in a relatively small installation. Surely their monitoring can detect this?
When you select your instance-type then you get to choose between "Low", "Moderate", "High" and "Very High" I/O performance.
Want to take a guess at which instance types suffer first when there is high I/O demand or contention?
I, too, have seen these freezes occasionally on small instances. If you think that is harsh then try one of the new micro's. ;-)
Anyways, I haven't had such a freeze last longer than a minute yet, and the instance would always recover. If yours does not recover then that would clearly be a bug.
I'd certainly try AWS, but I'd wait a couple of months before shelling out the upfront cost for the Reserved Instances.
This blog post walks through a bunch of things you can do to make the best out of the flexibility you get with EBS, and includes scheduler tuning, RAID block size planning, etc.
http://orion.heroku.com/past/2009/7/29/io_performance_on_ebs...
My team runs a large AWS/EBS backed implementation and, while we've seen some of the EBS performance issues, we've certainly engineered past them to get us where we need to be.
In our case, we replicate to set of non-RAID EBS instances where we pull snapshots.
Snapshots are still doable, they just require coordination of all the underlying devices to make sure they are all in a consistent state. The way you do this can vary but it's not particularly hard.