For a small server that does not reach anywhere near its bandwidth or hardware limits, load balancing may not be relevant. For a powerhouse server, however, that receives a near maximum amount of monthly traffic, problems with high CPU and RAM load may be a serious issue. Putting too much load on a server can effectively cripple it, leaving your websites inaccessible.
One solution to this problem is called load balancing. With load balancing, you use a second, third, or more servers to offset some of the traffic load. All of the servers share the traffic, reducing the load on each.
The most basic form of load balancing is to have two servers that sync identical software and data. Load balancing software keeps the servers in tune with each other, and they balance the number of users between them. The problem with this situation is that many dynamic web applications require multiple requests in succession and often used caching to give the user a more seamless experience. In such situations, information stored on the server needs to change rapidly. Load balancing software can use a method called “persistence” to keep the user on a single server for the duration of the session.
Server administrators can setup their own load-balancing servers with free or commercial software, or subscribe to load balancing services from a dedicated server hosting provider. A group of servers dedicated to a single Internet service is called a server farm.
There are alternatives one can consider before reaching the point of needing load balancing. One is to have separate servers for various daemons (i.e. one for the web server, another for the database server, and another for web applications). Another possibility is to use a content delivery network (CDN). After all options have been exhausted, however, load balancing may be the most logical choice.