Rackspace Cloud Essentials - Choosing the right size Cloud Server
One of the great advantages of using Rackspace Cloud Servers is the flexibility you have to purchase only the amount of computing power needed. When business is good and you need increased server capacity, you can scale your implementation horizontally by distributing your traffic over multiple servers using Cloud Load Balancers.
The question is, how much computing power will you need?
One way to determine this is to install and test your application on a few different size implementations. Next, perform load testing of your application while simulating traffic to your site. It is best to test with your site from a URL that will do more than just retrieve a static web page (for example, hit a page that uses PHP and makes a database query, so the test is more representative of normal traffic).
Here we'd like to show you some of the standard tools for viewing your server's performance, and to help you determine whether the Cloud Server size that you chose is up to the task.
One thing to keep in mind is that Rackspace Cloud Servers are virtual partitions of larger physical machines that allocate resources based on a process called CPU scheduling. They will not perform exactly like a dedicated machine with similar resources. You can find out more details about CPU scheduling by reading the Performance section of our Cloud Servers FAQ.
Also bear in mind that Cloud Servers come in Standard and Performance flavors (server types). The Performance flavors offer faster disk access and network speed than Standard flavors, but disk size and virtual CPU allocation will be different for equivalent flavors. Compare the offerings based on the performance needs you identify in the following sections.
Performance testing in Linux
If your application is running on a Linux system, there are many utilities that you can use to get a good picture of how well your server is handling the load. The main statistics you will be looking at are the load average on the server and the available memory while your application is running.
free: 'Free' is a quick and easy monitoring utility that gives you a snapshot view of the amount of available memory on your server. Adding the switch '-m' to the command will show you available memory in megabytes (as opposed to the default kilobytes). Read the detailed article on how to use the free command.
top: 'Top' is useful for more than just checking available memory. You can view the load average on the server, as well as the processes using the most resources on your server. Read the detailed article on using the top command.
Both iotop and dstat might require extra packages to be installed on your server.
If you use these tools while running your web application and you see an excessive load average or a memory usage, you either need to tune your application or (more likely) increase the size of the server you are running it on. Here are some other tools that you can use to benchmark and monitor your servers and applications.
Resources for Testing Your System
apache "mod_status" module - good for digging around in apache to see how many connections are being used, and how you may need to tweak its setup. Read the detailed article on apache mod_status module.
ApacheBench - is an http load generating tool that reports how many requests per second your application can process.
Jmeter - provides load testing and performance monitoring for web applications.
Additional Resources: Scaling, Tuning, and Load Balancing
Article: Scaling for the Holidays - To Scale Vertically or Horizontally?
Article: Scaling for the Holidays - Take Advantage of Caching
© 2011-2013 Rackspace US, Inc.
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License
See license specifics and DISCLAIMER