Hacker News new | comments | show | ask | jobs | submit login

The cost that everyone fails to recognize is the cost (performance-wise) of virtualization. Simply comparing X instances of EC2 to X instances of bare metal ignores the fact that a bare metal instance could range anywhere from 1x to 50x more performance for equivalent specifications. For memory bound applications you might get equivalent performance for the specs but for IOPS-bound or CPU-bound you'll probably take an order of magnitude performance hit for the same specification of hardware when virtualized.

Any analysis like this needs to first find a set of comparable servers that have performance parity (for the given application) first instead of merely specification parity.

You are correct in that you need performance parity for two items to be comparable.

You are incorrect in saying that you take an order of magnitude performance hit when Virtualization, especially for CPU bound tasks [1].

In terms of disk you are slightly more correct, you can lose substantial performance, however it's still not an order of magnitude.

[1] http://blog.xen.org/index.php/2011/11/29/baremetal-vs-xen-vs... (A series of benchmarks showing a disparity of ~1% off bare metal on CPU bound tasks.)

A better comparison might be dedicated hardware versus virtualized in EC2 than virtualized on stand alone hardware as EC2 is a shared environment.

I understand that technically there shouldn't be much disparity for CPU bound tasks (because most instructions are translated directly), but our benchmarks show a 40x performance hit for heavily CPU bound, single threaded tasks between a large EC2 instance and an entry level softlayer dedicated box (doing computer vision work). Perhaps it's a caching issue caused by Xen and other VMs sharing the hardware or perhaps its the fact that EC2 is built on older hardware that might not support some of the more advanced CPU features. Regardless, core for core on a anecdotal level, we have seen a stunningly large impact by switching to dedicated hardware.

Keep in mind that EC2 is simply one very specific case, and you can sum up a good portion of its problems with "It's designed to be cheap to build".

If your virtual machine's CPU is 1/10th the performance of host, there's something incredibly wrong. Almost all CPU instructions in a VM run unmodified on bare metal.

That's true, but nearly every virtual server provider oversubscribes the physical hosts; there's not a 1:1 correlation between virtualized and physical CPUs. Consequently, your virtual machine may have to wait a while for its process to be requested.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact