The Industry

Articles on community development, Ruby on Rails, and SEO

EC2 CPU Performance is Suspect February 16, 2008

filed under

About Shinji

I'm a Rails developer and nonprofit administrator, specializing in online community development.

LinkedIn | Twitter | del.icio.us

Like many, I’ve been sort of infatuated with Amazon Web Services lately. My new projects almost always use S3 for backend file storage at this point; it’s not just cheaper, it’s also a simple way to segregate static files from your app servers. Overall, S3 works pretty much as advertised.

EC2, however, does not work as advertised, at least from a CPU perspective.

EC2 instances come in small, medium, and large. The cost of running a “small”, or even a “large, production server, full-time, is about comparable to that of running a traditional, entry-level dedicated server. Because it’s priced per-hour, and there are no setup or termination fees, it’s a bargain.

Here’s the catch. Although Amazon advertises the EC2 processor on a small instance as “equivalent” to a “dedicated 1.7GHz Xeon”, that’s really not how it shakes out. For some reason, which I hope more expert sysadmins will eventually determine, processes on an EC2 instance will never perform at that level—that is, it’s impossible to use even 50% of the available CPU time.

It’s a hot topic in the AWS forums:
CPU performance 50% of expected
CPU Utilization below 50%

Unfortunately, discussion of these issues invariably gets bogged down in super-technical discussion of benchmarking and hardware virtualization, so the outrage is a bit slow in building.

Clear is this: if you are running a CPU-intensive application, investigate and test thoroughly before assuming that EC2 is viable for your purposes. Yes, you get loads of RAM, and a complete virtual server, which is kickass… but the CPU may significantly underwhelm you. Check it out.