Greplin (YC W10) AWS Benchmarks and Best Practices
tech.blog.greplin.com
tech.blog.greplin.com
1) Did you try bigger instance types, i.e. large? I've heard at that level and above you get better networking performance, which theoretically might improve EBS performance?
2) Related to #1, I wonder if you've tried doing RAID0 on the ephemeral drives? You get two with the large instance, and four with xlarge.
3) Did you ever measure non-IO network EBS performance during the tests? I've always wondered whether using EBS heavily would slow down other network traffic to the device given there is only one interface.
4) How often have you yourself experienced EBS volume failure in your RAID volumes?
5) When that happens, what happens to your volumes and instance? That is, what do you use to monitor when the RAID volume degrades? Does it usually take down the instance immediately or only after some time? If it just becomes really slow does that throw alarms or does the application just become really slow?
6) Finally, what is your current procedure for dealing with a volume failure?
Well that ended up being a lot of questions. I'd really appreciate any answers/insights your or anyone else could shed on these questions. I've been reading all these posts but it feels a bit like reading tea leaves.
http://blog.cloudharmony.com/2010/06/disk-io-benchmarking-in... http://blog.cloudharmony.com/2011/04/unofficial-ec2-outage-p...
http://blog.rightscale.com/2010/04/01/benchmarking-load-bala...
So I'd say YES, other workloads would be affected during heavy EBS I/O, though I've never tested/measured this specific case.
Adrian C from netflix had a nice tech article on EBS performance. "Understanding and using Amazon EBS - Elastic Block Store" http://perfcap.blogspot.com/2011/03/understanding-and-using-...
Problem with EBS benchmarks is that they largely depend on who else is sharing the spindles with you at the time the benchmark was run. Given the large variance in performance that is being reported, the sample size for some reliable statistics would need to be quite large
Really? My experience with EBS has been more to the opposite... especially with write performance.
If you got to write data, you got to write data. Flakey performance becomes more likely as more volumes are added.
Previously I think AWS engineers recommended we use RAID0 with EBS... ugh. Don't care cloud or not, RAID0 on production DB servers sounds downright suicidal.
I don't know if that's what actually happening, but testing seems to confirm that RAID performance is more consistent than single drive performance.
RAID0 on EC2 isn't as insane as it appears at first glance. EBS's have an annual failure rate of around 0.2%, while hard drives are around 5%. So, the chances of 1 EBS drive failing is around the same as the chance of 2 physical hard drives failing (5%^2 = 0.25%). It doesn't sound unreasonable to suggest that a RAID0 of EBSs is about as reliable as a RAID10 of physical drives and more reliable than a RAID5 of physical drives.
While that's not the fastest thing in the world (e.g., a good SSD will outperform a 16 drive EBS Raid for most workloads), I don't think it's fair to characterize it as 'slow as molasses'.