Performance, or more precisely, the lack of performance, is an invisible cost in your architecture. It is a tax you have to pay by having to over provision resources in your cloud design to match a given workload. A hybrid cloud gives you the flexibility to choose from different performance profiles to fit your application needs, from dedicated to shared cloud resources, and across its evolution from small endeavor to large mission critical app.
There are many potential bottlenecks in a cloud architecture, and they can exist at any layer in the application stack, from the application itself all the way down to the lower database or storage layers.
To help you make an informed decision on your design, we created two performance benchmarks.
Performance benchmark for Cloud Block Storage
Rackspace’s Cloud Block Storage service delivers not just high performance, but it aims to deliver it consistently. In the performance benchmark for Cloud Block Storage we analyzed the performance of the service across both SSD and SATA volumes, including also the local storage of Cloud Servers, across three different file systems (EXT3, EXT4 and XFS) with different mounting options, and across five access modes (random read, random read/write, random write, sequential read and sequential write), from 1 to 128 threads. We also show the results of the tests on another cloud provider, though we will be expanding those tests with additional data in the near future.
Each page in the document shows a combination of file system, access mode, storage service, mounting options, throughput and latency visuals, etc. For example, you will see the different latency variability patterns of different storage services, as seen below.
For those who would rather see the numbers, we also show the average and standard deviation information:
You will also see the different throughput curves for each case, as seen below:
Below is a full example of what you will see in each slide. Click on the image to get the full document.
By the way, if you missed it, take a look at the webinar “Understanding Cloud Block Storage: performance, options and use cases” that we released recently.
Performance benchmark for Cloud Databases
Databases are notoriously hungry for memory, network, CPU and storage. Cloud Databases implements a container-based virtualization architecture, which allows us deliver better performance for your database by reducing the performance penalty from traditional virtualization approaches used by other clouds. In this performance benchmark for Cloud Databases, we tested Cloud Databases across each one of our flavors. We also compare it with another provider’s performance, and as above, will also be providing more data with different configurations in the near future.
Click on any of the pictures below to get to the document. You will see some basic throughput info we are seeing on the service, as shown below:
However, we not only show throughput, but also cost of performance (more about this below), as you can see in these charts:
Cost of performance and the overprovisioning tax
I have been in many customer conversations where at some point the issue of pricing comes up. Inevitably a question is asked that, in its most basic form, sounds like this: “How much does it cost to provision [a unit] of a [given cloud service]?” For example, “how much is a 16GB database instance?” Comparing unit prices across clouds is a simplistic view of pricing because many clouds suffer from a significant “overprovisioning tax.” This overprovisioning tax comes in many forms. For example, it may be in the form of extra resources you have to pay for because you are running your application on that shared infrastructure that delivers less throughput for the same number of units; or in the form of extra development effort and resources you must spend to account for inconsistency of performance in storage; or in the form of extra support personnel that you must staff to manage the quirks of that cloud.
In these benchmarks, we also use the throughput results and the costs to show an aspect of thecost of performance. Measuring the price you are paying based on the performance you are getting from such infrastructure is more representative. This can help you figure out the true costs of your deployment given a certain workload size.
Something that differentiates Rackspace from other clouds is our hybrid cloud, which includes options from public cloud to dedicated infrastructure. Dedicated infrastructure at Rackspace means truly what it says: infrastructure that is dedicated to you, not to other customers, not to a hypervisor, etc. It’s bare metal, as opposed to simply a virtualized server that is single-tenant; and it is available with very simple pricing and no complicated fine print or “extra fees.”
We will be providing further updates to these reports, but I hope that they are useful in informing your designs. Always remember that a benchmark is a controlled experiment under conditions that are not those of your own application. They may be useful guidelines, but do not replace benchmarking or load testing your actual application under the load conditions you generally expect to see in production.