Behold, the fool saith, "Put not all thine eggs in the one basket"
- which is but a manner of saying, "Scatter your money and your
attention"; but the wise man saith, "Put all of your eggs in the one
basket and - WATCH THAT BASKET."
- Pudd`nhead Wilson`s Calendar
(Mark Twain)
Hosting is a tough business primarily because it a 24x7 business. The servers, bandwidth etc. needs to be up and running 24x7. The only solution in such a condition is redundancy in everything. Have multiple power sources main power, UPS, generator. Have multiple bandwidth providers .... in short one needs to duplicate everything. Yet one can never give a 100% uptime guarantee.
Interestingly most webhosts want this kind of redundancy from their providers. However, many small hosts make the mistake of hosting all their customers on a single server. It is often considered better to have one high end server and fill them with as many accounts as possible. Here are some of the reasons why a single server is preferred by webhosts -
Buying a single server is considered cheaper than buying multiple servers.
It is easier to maintain a single server.
The software costs is reduced. Multiple servers means multiple O.S. licenses and multiple control panel installations.
While colocating, multiple servers means more datacenter space.
Customers look at the specs of a server where a higher end server considered better.
A well configured server can take more sites than a poorly configured server.
A good OS such as NetBSD would take more sites as the OS architecture is better.
Now who would want to take multiple servers when a single server can do the task. All the webhost needs to do is select the right OS and configure it by an expert and he can live a peaceful life hosting as many sites as he wants, maybe even unlimited sites on a server. Sounds too good to be true.... Well it may be just that, too good to be true.
Many a times things look very good even with over a 1000 sites. And then a spammer decides to pay for a year and start spamming from the server. The load is never below 20 and the sites start to take ages to load. The server crashes and all the sites go down at one shot . If the server has about 1500 sites, and the server goes down on a monday morning, the webhost may end up with 750+ support tickets and many cancellations. In short single servers could mean -
Higher support costs as the number of support calls would increase.
Higher server load as the server is catering to more sites. This would mean slower sites.
More risks as the number of users per server is higher. It is tougher to maintain more user per server.
Another important aspect that many hosts forget when hosting on a single server is the total throughput of the ethernet card. A single card would always have its limitations on amount of data it can push at any instant of time. When hosting multiple sites, if many of these sites are accessed at the same time, the ethernet card would fail to push the data quickly.
Lastly, high-end servers tend to consume a lot more power than lower-end servers. They also heat up more than regular servers. The over heating leads to faster hardware failure.
Now the question that needs to be answered is, "How many sites can a webhost host on a typical server ?" . There is no exact number for this. Every host would have to determine just how many sites per server is ideal for them. Some of the factors that needs to be considered while reaching this figure -
The ratio of dynamic sites to static html sites on the server
The kind of packages offered by the webhost. Higher bandwidth, more mailing lists, databases etc. would mean higher server loads.
The location of the customers. A lot of sites from the same time zone would have higher usage at the same time.
The kind of O.S and software used.
The way the servers are maintained. Servers which are not maintained on a regular basis should have lesser sites hosted.
For a single processor server, the load should generally be lesser than 1. On Linux one can see the cpu load by using the w or top command. Or simply cat /proc/loadavg . A load average of 1 means the entire cpu cycle is being utilized by processes. 0.5 means that only half of the cpu time is utilized. A little bit experiments would help determine the right load average.
Webhosts should also give a lot of importance to the amount of RAM as well as the type of network card used by the server. Always go for high-end ethernet cards while taking server. This would ensure the maximum throughput of data.
How does one go about a good strategy for webhosts? Let`s take a typical datacenter and compare the prices. Consider ev1servers.net. The cost for low end servers vary between $99-$120, where for the high-end servers the cost would vary between $250-$350. Consider another datacenter dedicatednow.com. Here the low-end server can be purchased for as low as $70 per month and a high-end is about $225 per month. The price variation for most datacenters is similar to those mentioned above. A high-end server can be safely replaced by 3 lower-end servers at the same cost. While co-locating, however, space does become a consideration and higher-end servers may work out better.
Due to the demand for different O.S. and control panels, webhosts cannot replicate the setting on servers. There would be differences. However, if a good policy is in place the maintaining the servers would not be a problem. Multiple servers also allow webhost to broaden their offerings to the end users in terms of the O.S. and control panels offered.
The biggest benefit of having multiple servers is understood only when a server crashes or when a server is hacked. In such cases, the number of trouble tickets reduces, as not every site that is hosted by the webhost is effected. It is better to have 200 customer sites down at a time due to hardware failure than to have an angry mob of 1500+ customers at one shot. Multiple servers also means that the webhost can spread the name servers across the servers.
When it comes to eggs - the wise man saith, "Put all of your eggs in the one basket and - WATCH THAT BASKET." However, when it comes to servers and customers it is best to put them on multiple servers.