Thursday, 27 October 2011

Amazon EC2 I/O benchmarks

So, after my previous post where I used bonnie++ to benchmark my desktop machine, I decided to benchmark the I/O performance of the virtual server (or as Amazon like to call it, an "instance") with the same tool.

The results are as follows:
Note that I've taken a screenshot of the results as opposed to pasting them in this time, as the last time I couldn't get the columns to line up.

So, what can we tell from these numbers? How do they compare with my desktop SATA hard drive? Here are the same numbers from the SATA drive:

Well, we can see that when it comes to the Sequential Output numbers, the local SATA wins in all three of the numbers and the CPU utilization is exactly the same on both of the systems. It's the same story for the Sequential Input numbers, although there doesn't seem to be as much of a difference as with the Sequential Output numbers.

In the Random Seeks, the AWS machine blows away the local SATA drive, both in terms of Random seeks per second and the latency numbers. The only place where it loses out is in consuming much more CPU than the local system.

In the Sequential Create category, AWS also comes out on top, although, for some reason I wasn't able to get Read and Delete numbers for the local disk.

The Random Create category is pretty much even, with neither system really standing out.

So, there you have it, the AWS infrastructure isn't as bad as I had originally thought. Also, one thing to keep in mind is that the type of EC2 instance tested was just the basic "free" instance which Amazon provides. I would expect that better provisioned instances would perform even better when it comes to the same test.

Wednesday, 19 October 2011

LAMP stack with Ubuntu JeOS

JeOS stands for "Just enough operating system" and referrs to an operating system with the bare minimum software installed to run the application required. Ubuntu's server edition makes it easy to install a JeOS minimal system.

To install a minimal LAMP (Linux, Apache, MySQL, PHP) stack on top of an Ubuntu JeOS instance, simply boot off of an Ubuntu server CD and then when it comes to the install screen, highlight the "Install Ubuntu Server" and then press F4 to bring up the "Modes" menu. From this menu select either "Install a minimal system" or "Install a minimal virtual machine", depending on whether you are installing a VM or a physical server.

From there, carry on with the rest of the install process and when it comes time for the software selection, check the "LAMP Stack" option. During the install process you'll be asked for a MySQL root password.

After this is done, you'll end up with an OS that takes up only about 650MB, compared to the regular Ubuntu server option which takes up 2GB. The main advantage of the smaller size is that the server or VM doesn't run any unnecessary services or expend any extra resources in keeping superfluous software updated. In addition, if it is a VM, it makes it much easier to transport and turns it into more of an "appliance"