Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Which is faster for read access on an EC2 instance; the "local" drive or an attached EBS volume?

I have some data that needs to be persisted so have placed this on an EBS volume. I'm using OpenSolaris, so this volume has been attached as a ZFS pool. However, I have a large chunk of EC2 disk space that's going to go unused, so I'm considering re-purposing this as a ZFS cache volume but I don't want to do this if the disk access is going to be slower than that of the EBS volume as it would potentially have a detrimental effect.

share|improve this question

5 Answers 5

up vote 9 down vote accepted

Just to add a little to the consensus that is EBS faster...

An important point to understand here is that instance storage speed is unpredictable - Amazon makes no guarantees about it.

This information comes from the book Cloud Application Architectures by George Reese (which seems pretty good from what I've skimmed it so far.) It includes a table titled Comparison of EC2 data storage options (p. 41); here's a snippet of that table (in the book there are several other characteristics compared):

               S3              Instance          EBS

Speed          Low             Unpredictable     High
Reliability    Medium          High              High
Durability     Super high      Super low         High

So, instance storage might outperform EBS in read access sometimes, but if you want constant high speed, you indeed need to go with EBS. As Reese puts it in his book:

Another issue is the unpredictability of performance in the instance storage. You might actually think that it should be faster than the other options, and sometimes it is. Sometimes, however, it is unbelievably slow - slower than an NFS mount over a 10bT Ethernet connection. EBS, on the other hand, consistently gives you the performance of a SAN over a GB Ethernet connection.

share|improve this answer
2  
I've had the exact opposite experience. EBS's performance is unpredictable. All of EC2's major downtimes have involved EBS. Instance storage has always had predictable performance. –  Joe Van Dyk Nov 20 '12 at 22:13

We ran up roughly $1000 in AWS charges in a systematic exploration of this and related questions, and posted an extensive analysis.

For random (small) reads, we found "local" (EC2 instance) storage and EBS to have similar performance, but local storage has a better latency tail.

For sequential (bulk) reads, EBS is faster on m1.small, but local is faster on m1.large. We didn't directly compare local vs. EBS on other instance types, but we did find that increasing instance size has much more effect on local-store performance than on EBS performance.

There's also a cost question. By shifting I/O from EBS to the local disk, you'll reduce your AWS fees.

share|improve this answer

If you're after database performance in Amazon, you may find this article useful: http://www.mysqlperformanceblog.com/2009/08/06/ec2ebs-single-and-raid-volumes-io-bencmark/

The general vibe from my own research (have been reading about this for a few weeks) is that EBS is the faster option.

share|improve this answer
    
I have heard reports that you should write over the drive once, as the initial write to a location has a high overhead. Also, you can sometimes get a bad EBS controller, so it would be best to check their speed before doing anything critical. I have seen a small number of drives with that issue. It arose when I was snapshotting 4 500gb drives, and 1 of them took 4-5x longer, even with the same data. –  Flashman Jan 4 '11 at 18:16

Amazon has made vague claims that EBS will generally outperform the "local" scratch partition on an EC2 instance. I know that I've experienced higher throughput on an EBS volume in my own use, but I had not bothered to measure latency.

If you're curious about performance in a particular use, your best bet is probably to set up a test instance. I know that I would.

share|improve this answer

I've run MySQL instances on EBS volumes and have been pleased with their performance. I don't have any hard data on it either, but it performed just fine.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.