A very interesting discovery made by our sys admin not so long ago: While Amazon EC2 sells its hosting services on the notion of leasing virtualized servers with a guaranteed amount of standard compute units, memory and disk space, it turns out that in fact, not all EC2 compute units are created equal. In other words, imagine you boot up 2 separate virtual servers (or instances as they are known in EC2 speak) and these are both EC2 Extra Large instances. Each instance comes with 8 EC2 compute units – which is essentially supposed to be the amount of raw CPU processing power available to you where the larger the number of compute units, the more processing power your (server) instance should be giving you.
Now one would expect that since you are paying the same amount of money to Amazon for each server instance created of this same type and size, that you should be getting the same performance out of each one. Sadly, that is a very wrong assumption, as our sys admin found out.
It turns out that the underlying hardware for each instance created impacts the actual performance that each instance gives you, even though the instances are all virtualized and marketed by Amazon as if they are all created equal. In our case, we found that the different underlying hardware that the virtual instance sits on has a significant impact on application performance, at least with respect to MySQL database performance. Instances that were created on machines with AMD’s Opteron 270 processors (2ghz 1mb L2 cache) showed significantly poorer MySQL performance compared to instances created on machines with Intel’s Xeon e5430 processors (2.66ghz 6mb L2 cache). Well, the hardware techies among you out there might be saying “well duh… of course the Xeon will spank with the Opteron, tell me something I don’t already know.” But that’s not the point.
The point is in both cases, the EC2 customer is paying the same for an instance that is marketed as having identical compute units (i.e. processing power), but the reality is very different. Bear in mind that one cannot select what underlying hardware you want your instances to be powered up on – what we did was simply keep destroying and creating new instances until we found that the new instance was created on the Xeon-based hardware that we wanted (TIP: from the Linux shell of the new instance, run this to see what hardware your instance was created on: cat /proc/cpuinfo).
Moral: while cloud computing with Amazon (or likely any other vendor of this ilk) has definite pluses, there are hidden gotchas that they don’t tell you about.


Maybe a business opportunity for “tasters” that discard “poor” instances right away (pay for just 1 hr) and provide “good” ones to customers willing to pay a bit more for better CPU (and consistency of instances)…
Thanks for stopping by William! An interesting idea indeed and probably not too hard to do using the Amazon AWS API.
Good article. I guess with cloud computing something that will need to be done is include some sort of performance guarantee in an SLA. This should state the minimal performance as performance might vary depending on the underlaying platform. The lowest guaranteed performance is what you as a customer should be paying for….
[...] was just reading an article which is titled “Surprise! Not all Amazon EC2 compute units are created equal. I think it’s a very interesting article and actually shows how people think/feel about what [...]
[...] Wire Turf and Alan pointed at not all underlying commodity hardware running EC2 is equal — some of the servers your VM might get created on are many years old and perform like [...]
[...] non tutte le compute unit sono uguali Ho letto con particolare interesse questo post di David Mok, da cui risulterebbe che le stesse versioni di virtual machines (o istanze per [...]
[...] Amazon customer, David Mok, CTO at OleOle.com, suggests instead that the overall performance degradation depends on some differences (the CPU) in the physical [...]
Social comments and analytics for this post…
This post was mentioned on Twitter by davidmok: Surprise! Not all Amazon EC2 compute units are created equal. http://bit.ly/ec2units...