Cloud / VPS Apache Performance Comparison
DISCLAIMER: I am a Rackspace employee. These tests were not sanctioned by the Rackspace Cloud and were preformed on my own time independently. If you have any questions about the testing methodology don’t hesitate to ask.
—–
UPDATE #1: I received several comments about the testing methodology used in these benchmarks so I wanted to explain further. Each server instance at the Rackspace Cloud, Linode and Amazon are running the exact same Linux distribution (Debian 5.0 Lenny), kernel, architecture (x86_64) and version of Apache (2.2.9 w/ worker MPM).
UPDATE #2: After much concern was raised I went ahead and reran the benchmarks on the small instances after tuning a few settings on the Linode server.
echo 99999 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
Also, instead of running the tests from a consistent remote location I ran them on the local machines this way I could guarantee that network latency wouldn’t impact the test results in any way.
—–
In the past few weeks there has been a lot of talk about the differences between various Cloud and VPS providers (see my post), mainly revolving around performance. I decided to take some time last week to run some very straight forward and real world tests to gauge performance among the most popular providers: The Rackspace Cloud, Amazon EC2 and Linode.
For the benchmark I decided to use ApacheBench and Siege as *most* users on these platforms are serving some type of web content via Apache. Even if different web server software is used, it is unlikely that the results and trends would differ. As part of a series of posts, I will be running the same benchmarks against static content and dynamic content. This way we can be sure to look fairly at all aspects of each particular platform.
As mentioned, I decided to use ApacheBench and Siege as the testing platforms so I performed a default install of Apache 2.2 with the Worker MPM on each server instance. The server OS platform is Debian 5.0 Lenny on all servers.
These benchmarks are very easy to duplicate, so if you would like to test the results simply replicate the total connections or time and concurrency settings mentioned below.
I did not tweak any of the Apache settings on any of the server instances. I used the default settings of:
<IfModule mpm_worker_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
I ran the same tests against each platform and since I was only hitting the default HTML page generated by the Apache install I decided to raise the concurrency limit up to something significant to generate some real load. Each benchmark was run three times over three different days and I took the best result from each set of tests.
ApacheBench: 100,000 Total Connections / 100 Concurrent Connections
Siege: 10 Minutes Under Siege / 50 Concurrent Connections
Let’s get to the results!
Small Size Instances
ApacheBench Results
| Rackspace 256MB Cloud Server | Linode 360MB | Media Temple DV 512 | |
| Concurrency Level | 100 | 100 | 100 |
| Requests [#/sec] (average) | 10,706.64 | 4,554.43 | N/A |
| Time Per Request [ms] (mean) | 9.340 | 21.957 | N/A |
| Transfer Rate [Kbytes/sec] Received | 3336.14 | 1,414.39 | N/A |
Siege Results
| Rackspace 256MB Cloud Server | Linode 360MB | Media Temple DV 512 | |
| Transactions | 1,587,997 | 1,165,412 | N/A |
| Availability | 100.00% | 100.00% | N/A |
| Response Time | 0.04 secs | 0.05 secs | N/A |
| Transaction Rate | 2,647.68 trans/sec | 1,942.90 trans/sec | N/A |
| Successful Transactions | 1,587,997 | 1,165,412 | N/A |
| Failed Transactions | 0 | 0 | N/A |
| Longest Transaction | 0.42 | 0.61 | N/A |
| Shortest Transaction | 0.00 | 0.00 | N/A |
Review
The Rackspace Cloud Server instance, with only 256 MB of RAM, performed well under the stress as did the Linode 360 server, but there is still a significant difference in the overall performance. This could be due to host server utilization, but according to the Linode control panel the host machine my instance was running on is “low”.
In the Siege results we get some similar insights. The 256 MB Rackspace Cloud Server processed significantly more transactions than the Linode server. Importantly, the transaction rate was also much higher.
There is always a lot of discussion around the Linode 360 server instance being a better value than the 256 MB Rackspace Cloud Server, but the tests show otherwise. In my opinion this is most likely due to Rackspace Cloud’s lower utilization of host hardware and a more robust network.
Large Size Instances
Now lets take a look at the larger instances. I wanted to work Amazon’s EC2 platform into these performance tests and their large instance is most comparable to the Cloud Server and Linode instances of the 8GB variety.
ApacheBench Results
| Rackspace 8192MB Cloud Server | Linode 8640MB | Amazon EC2 Large | |
| Concurrency Level | 100 | 100 | 100 |
| Requests [#/sec] (average) | 10,729.61 | 9,109.91 | 6,782.93 |
| Time Per Request [ms] (average) | 9.320 | 10.977 | 14.743 |
| Transfer Rate [Kbytes/sec] Received | 3,363.62 | 2,829.17 | 2,113.04 |
Siege Results
| Rackspace 8192MB Cloud Server | Linode 8640MB | Amazon EC2 Large | |
| Transactions | 1,564,152 | 1,636,652 | 891,956 |
| Availability | 100.00% | 100.00% | 100.00% |
| Response Time | 0.04 secs | 0.04 secs | 0.07 secs |
| Transaction Rate | 2,606.79 trans/sec | 2,727.34 trans/sec | 1,485.80 trans/sec |
| Successful Transactions | 1,564,152 | 1,636,652 | 891,956 |
| Failed Transactions | 0 | 0 | 0 |
| Longest Transaction | 0.49 | 0.22 | 0.65 |
| Shortest Transaction | 0.00 | 0.00 | 0.00 |
Review
As we saw with the smaller instances in the ApacheBench test, the Cloud Server with fewer resources is outpacing both the Linode server and the Large EC2 instance. But in the Siege benchmark we see the Linode instance take the crown for total transaction rate. I would note the larger memory allocation on the Linode server instance might have something to do with these results so be sure to compare price for your particular application.
Amazon’s Large EC2 instance was the slowest of the bunch during the ApacheBench testing but did complete all of the transactions thrown at it during the Siege benchmark.
Final Thoughts
The tests show some significant performance benefits when running on the Rackspace Cloud Servers platform on the low end and similar performance to larger Linode and Amazon instances on the high end even though the comparable Cloud Server had much less memory and therefore lower cost. In my opinion, I believe lower hardware utilization and better host server hardware contribute to these results.
Apache settings can definitely be tweaked to increase performance on any of these platforms; this was just a baseline test using the defaults provided. The next round of tests will focus on serving a dynamic web applications.
If you have any thoughts, questions or comments about the benchmarks performed here please leave a comment below. I’d love to hear from you!
The Rackspace Cloud Control Panel – Why It's Better
If you have been in the hosting business or simply hosting your own web sites for any length of time, you are probably familiar with the most popular commercial control panels on the market: Plesk, cPanel & Ensim. These control panels, while powerful in many respects often introduce more trouble than they are worth in the form of increased resource overhead, buggy implementations, cost, usability, etc.
The Rackspace Cloud has taken a different approach and decided to design and develop their own control panel in house from the beginning. Today, the Cloud control panel is an extremely powerful tool that is built specifically for the three product offerings from the Rackspace Cloud (Cloud Sites, Cloud Servers & Cloud Files). This control panel has many benefits over using a generic commercial CP, for example:
- Developed and built specifically for the Rackspace Cloud architecture
- Internal development means it can be more tightly integrated and we can be more nimble to customer feedback and feature requests
- Years of workflow improvements based on feedback
- Light and efficient
- Infrastructure runs separate from your Cloud environment so it does not utilize resources within your hosting platform and consequently cannot impact your sites performance/uptime
- Near real-time reporting on Cloud specific usage metrics (bandwidth, storage, compute cycles)
- Custom reseller functionality (Cloud Sites)
- Advanced built-in ticketing platform
- Web based file-manager utilities for Cloud Sites & Cloud Files
The Rackspace Cloud control panel offers different features for each product, so lets take a look at these individually.
Cloud Sites
- Quick view listing of all domains and sub-domains (searchable)
- 3 step linear process to add a new site (Linux or Windows)
- Near real-time reporting on bandwidth, compute cycles and storage
- Raw web server access logs
- Internal testing URL for each domain
- Multiple FTP user management
- Quick view for website features (email, databases, logs, advanced features)
- Domain Management (renewal, transfer, whois, nameservers)
- DNS Management (quickly add or change any custom DNS records needed)
- MX Record Management
- SPF Record Management
- SSL Certificate Management
- Email Management (free Rackspace Mail accounts with Cloud Sites)
- Spam Filtering & Handling Customization (per domain)
- Database Creation & Management (MySQL and MS SQL Server)
- TrueHybrid Technology Platform Management
- Scheduled Tasks & Cron Job Management
- Full Server-Side Paths
- Client/Reseller Management (Client List, Client Plans, Client Products, Client Messaging)
- Integrated file-manager offering FTP like functionality
View a video demonstration below:
Cloud Servers
- Quick view listing of all provisioned Cloud Servers (searchable)
- 1 step process to create a new Cloud Server
- Custom server names for easy server identification
- Near real-time reporting for bandwidth utilization
- Quick view for server information: current action, age, RAM, disk space, IP, data center, backups
- 1 step process to initiate a Cloud Server resize
- Web based AJAX console for logging into your server instances
- Soft & Hard Reboot Capabilities
- Rescue Mode (allows you to debug system issues that are preventing a server from booting to a usable state)
- Easy rebuild from a default OS image or backup server image
- Ability to reset server instance root password
- Delete server (stops your hourly billing at that exact time)
- DNS and Reverse DNS Record Management
- Backup Management (set schedule for daily/weekly backups and perform a variable backup on the spot)
- Server Diagnostics (server state, swap i/o and root i/o usage, server load, disk i/o and network i/o usage, CPU % utilization, CPU time, PING from multiple globals locations)
- API Access
View a video demonstration below:
Get the Flash Player to see this content.
Cloud Files
- Integrated file-manager for managing containers & uploading data
- 1 click CDN publish capability
- Ability to apply a custom CDN TTL per container (default is 24 hours)
- Metadata editor
- Multiple file upload capability
- API Access
View a video demonstration below:
Get the Flash Player to see this content.
General Features
- Quick view reporting upon login for each product
- Detailed reporting section for each product
- Billing Reports (overview, current invoice, billing history, billing settings)
- Account Contacts
- API Access
- Integrated Live Chat Support
- Developer Resources
- Cloud System Status
- Knowledge Base
- Customer Forums
- Support Ticketing
- Direct Support Phone Numbers
If you have any questions about any of the information listed don’t hesitate to ask me or head over to www.rackspacecloud.com and initiate a live chat (or simply give them a call).
[VIDEO] Installing JungleDisk Server Edition on Cloud Servers
Just a few weeks ago the JungleDisk team announced their entirely new product lineup including the highly anticipated server edition. For those unfamiliar, JungleDisk develops a custom backup application which can store your local system data in the Cloud on platforms like Rackspace Cloud Files or Amazon S3. It supports many advanced features such as block level updates, compression, de-duplication, AES-256 encryption and much more. There are three different editions available for a variety of use cases including: Personal Edition, Workgroup Edition & Server Edition. The pricing ranges anywhere from $2/month per user to $5/month per user or server depending on the edition plus storage fees ($0.15/GB on Rackspace Cloud Files).
I recorded a video tutorial showing the process of installing JungleDisk Server Edition on a Rackspace Cloud Server. Many customers ask about the best way to do file-level backups on Cloud Servers and now the answer is simple: JungleDisk Server Edition. This is a great supplement to the snapshot based image backups that are already available with the Cloud Servers platform.
Check out the video below and if you have any questions or want further information about JungleDisk, head over to their site at www.jungledisk.com. For more information on the Rackspace Cloud and Cloud Server, head over to www.rackspacecloud.com.
Get the Flash Player to see this content.
If you have any feedback or thoughts please leave a comment – thanks!
Rackspace Cloud Servers vs VPS Platforms
Lately I’ve found myself in the middle of several discussions about how Rackspace Cloud Servers and other platforms like it (Amazon EC2, Linode, GoGrid, etc) differ from traditional VPS environments. While there are similarities, they are by no means the same thing. Let’s take a quick look at some of the key differentiators and advantages.
A Cloud Server is a virtual dedicated server instance based on our custom implementation the Xen Hypervisor that run on very robust hardware. These server instances offer truly dedicated and protected resources which isn’t the case with a VPS (virtual private server). While you may get a small portion of dedicated memory, there is generally no dedicated CPU allocation, disk i/o, network i/o, etc. In addition, most VPS providers only offer smaller amounts of resources, 256MB-1GB of memory and no options above this. And the largest problem by far is VPS platforms are typically oversold, so one physical host machine is running far too many customers and this turns into a resource allocation nightmare causing server crashes or poor performance (or both). There is no isolation from other customers.
With a Cloud Server you always get the full amount of allocated memory, CPU, network i/o, etc that you are paying for and there are some great perks as well, such as the ability for your CPU allocation to burst when there are free CPU cycles on the host machine or when it is heavily underutilized. So often you end up with far more CPU allocation than what you are paying for as the host servers powering Cloud Servers are never oversold.
Now, that being said, lets talk about some of the real “cloud” features…
Instant Provisioning
Spin up one, ten or 100 Cloud Servers in real-time via our control panel or programmatically via our robust API.
Resource Granularity
No need to worry about finding the best fit between 2 or 3 options. The Rackspace Cloud offers a wide range of instance sizes so you can ensure you are paying only for the resources you need at that time.
Near Instant Scaling
One of the best features of the entire platform is the ability to instantly resize (in near real-time) your Cloud Server instance with a few clicks in the control panel or an API call. Once this event is triggered everything else is automated and takes only a few minutes (depends on how much data is on the instance). Your new instance either larger or smaller will be created and a snapshot of your current Cloud Server is taken and restored to the new instance moving over all your data and configurations (no data migration or reconfiguration necessary). Once you confirm that everything is working with the new Cloud Server instance you can finalize the resize which moves your IP address(es) to the new server instance.
Hourly Billing & Utility Bandwidth
Utility billing is essential for any Cloud platform and something else you will not find from a VPS provider. You pay for your server instances on a per hour basis, so if you only need an instance for a certain amount of days/weeks that is all you pay for. Or if you need to move up and down on your resources you continue to pay only for what you are using. Bundled bandwidth is also something the VAST majority of users don’t exceed. We have broken this out to save you even more money instead of bundling it into the cost which always carries a dollar amount to it.
No Bloatware Installed
No control panels or other software installed by default, Cloud Servers give you straight SSH/command line access to your Linux server environment just like you would have with your own dedicated server. If you choose to install a control panel, you certainly can, but we do not make this decision for you.
Cloning
Server cloning allows you to provision a brand new Cloud Server instance on the spot from any of your current Cloud Servers which will contain all that servers data and configurations. You can also launch a new Cloud Server anytime from a backup image from any other server on your account.
Persistent Storage
This isn’t necessarily a difference between Cloud Servers and VPS platforms, but data persistence is a huge feature of the Cloud Servers platform when comparing to other Cloud infrastructure platforms such as Amazon EC2. Your data on Cloud Servers is stored on a local high-performance RAID10 array on the host server, so even in the event of a hardware failure your data is safe and will be there when the server is brought back online, unlike Amazon EC2 where all that data in memory simply disappears unless you have another storage solution implemented.
These are just a few of the big differences between a true Cloud hosting platform and a VPS environment. If you have any questions or feedback leave a comment below.


