Increased CPU load on a web server can be both a blessing and a curse to managers of popular web sites experiencing steady growth. Although a careful analysis of why your site performance may be dropping under load is always required before any decisions can be made, one common performance bottleneck for web sites and web applications is saturation of the web-facing application server hardware. In most cases, this boils down to utilization of the CPU(s) on the web server – the level at which performance degrades based on your operating system of choice.
For web sites running on the Windows Server family of operating systems, most experienced site administrators typically look at deploying new hardware when CPU utilization exceeds a constant 70%. Sites running on Linux typically scale better in terms of CPU utilization and performance may not degrade until CPU utilization is well over 90% however there is still the issue of “room to grow” when you’re running at such a high utilization rate. For example, if you’re maintaining a constant 90% CPU utilization on a Linux server, that utilization rate leaves only 10% available which could be easily reached given a quick spike in traffic or an expensive application operation performed by a single user. Regardless of the platform, performance will degrade considerably (non-linearly) when this degradation threshold is reached so it is to be avoided.
Long story short….if your app or site is constructed properly, needing additional server hardware is a good problem to have: it means your site is probably very successful! When adding in a second web server to handle your load, both machines will need to appear to the web audience at large as a single IP address/domain name so to accomplish this some sort of load-balancing infrastructure is required to distribute load between the machines. When choosing a load balancing approach, there are essentially two decisions to be made:
- Software or hardware: A hardware load balancer offloads all processing off of the web servers themselves but can be complex to configure and administer (as well as expensive to purchase). Software load balancing such as Microsoft Windows Network Load Balancing (NLB) is effective but doesn’t offer the fine-grained configuration options of a hardware load balancer.
- Sticky or stateless: Sticky load-balancing routes a user back to the same server during the life of a session whereas stateless load balancing routes to the most available server, based on internal algorithms.
The best hosting providers specialize in highly available server configurations, including load balanced implementations. For sites with growing traffic/performance requirements, it is important to factor the availability of such a solution into your hosting provider selection process.
About the Author
Josh Ewin is Director of Marketing for DedicatedNOW, a provider of managed dedicated servers and managed colocation in the NY/NJ Metro Area.