The Problem with EC2 Micro Instances

If you keep up with my blog you know that I really dig the EC2 micro instance running the Bitnami WordPress stack.  I’ve written about it before.  I’ve been hosting a few low-utilization web sites on mine for over a year now and generally speaking, it’s a great concept.

The problem is the occasional lockups.  Maybe once a month or so, the site dies, and the only information I can find that helps me to troubleshoot is that there has been prolonged periods of high CPU utilization whenever the crash occurs.

Well it turns out this is a problem with the Amazon micro instance.  On a micro instance, Amazon allows CPU bursting of up to 2 cores – but if CPU utilization stays high, it gets severely throttled.  And when that happens, sometimes, it crashes the server.

Today I decided to move up from a micro instance to a small instance.  I’m using the same disk image, so I’m running the same virtual machine.  But where the micro instance has up to 2 cores (with throttling) the small instance just has one core.

How much difference did the change make?  Turns out, a big difference.  Micro instance throttling is far more debilitating than I ever would have guessed.

Here’s typical CPU utilization for my server running as a “micro” instance:

As you can see, there is a bump every half hour as a cron job cranks up – and sometimes the CPU is maxed out for several minutes.  That almost certainly results in the web site becoming unavailable or at least very sluggish.

Here is the exact same virtual machine running as a “small” instance:

Wow – that’s an incredible difference: almost 10X the performance!

So while the micro instance is a great way to “get started” with EC2, the “small” instance provides far greater value – at 4X the price, it offers roughly 10X the performance.