Hi, I'm considering using Amazon's EC2 with a windows instance & SQL. I've seen some criticism of the perf of the SQL instances here. I'm wondering if any SOers have and first hand experience and can comment on the performance.
Hi Jon,
I've just fired up a 32bit Server 2003 m1 small instance with SQL 2005 Express on and had a quick play. Was just using the supplied machine disk, not an attached volume. After reading the article linked to in your post I was expecting performance to be horrific. It wasn't great, but wasn't bad either.
My 'tests' were rather simple. Created a table with an identity column, a few text (varchar) colomns and a few more integer foreign key columns with relationships to some basic lookups.
It took about a minute to insert 1 million records, and about a second to make updates to 200,000 row blocks of data using Like '% to force a table scan.
This doesn't tell us anything about what performance will be like under heavy load.
Conclusion: Not great, but could be worse - especially given the manner in which 'disks' are stored on aws. I don't think this is really the place for a big SQL Server installation, lots of small installations might be a more insteresting prospect. I'd also be interested to see what performance was like with the db spead over lots of small attached volumes.
I'm hoping to use EC2 for an upcoming project and will be doing some more thorough testing over the next few weeks. - I'll post the results as they're available.
Looking forward to seeing what other peoples experiences have been..
I'm very interested in this myself, but haven't had the chance to run any tests. One question about your tests, did you use the standard storage that comes with an EC2 instance, or do the Server Server EC2 instances automatically use Amazon's Elastic Block Storage? I know very little about ABS, but they do say that
"The latency and throughput of Amazon EBS volumes is designed to be significantly better than the Amazon EC2 instance stores in nearly all cases. You can also attach multiple volumes to an instance and stripe across the volumes."
Keep in mind that EC2 has a performance hit on the first write to a block on the ephemeral store, and the first access to EBS. As such, benchmarks which fail to take this into account may not be representative of performance on a long-running system.
There's a thread in the EC2 forums where this is discussed:
http://developer.amazonwebservices.com/connect/thread.jspa?threadID=26118&start=0&tstart=0
The last couple of posts from AWS folk make the point that 8MB/sec is about all you could expect from any single disk given that kind of random I/O load.