One of the most difficult issues we have encountered recently, ie in the last 12 months, is how to deal with accounts which use excessive amounts of CPU. It is a growing problem for all hosting companies, and the reason is simply to do with the changing nature of the hosting business.
When shared hosting first started to appear, the biggest cost constraint was traffic/bandwidth. The first accounts we offered back in 1997 had traffic allocations of 100MB, with very high excess usage charges. As the telcos rolled out fibre optic cables all over the world, our traffic costs dropped and we were able to increase the limits on our accounts, to the point where today, we can offer unlimited traffic on most accounts.
The next cost limitation was disk space. As people's internet connection got faster, they started to add more content to their sites, started to send bigger emails and stored them for longer. As the costs of disks dropped, it became less of an issue.
Because of this, customers can now put up virtually any size web site and have any amount of traffic going through them, for a very small cost. The result is that the only real limit now applicable to a web hosting account is CPU usage. There are two major problems with this. The first is that it is very hard to estimate how much CPU a web site will use in advance, or even how much CPU a specific component of a web site will take.
The second is monitoring and limiting CPU usage. Unlike disk space which is a definite number and can be easily limited per account, and bandwidth which again is a definite number and provides a cumulative total per month, CPU is much harder to count and varies throughout the day.
A web site may for example use hardly any CPU most of the time, but have massive spikes once or twice per day. Both the average and cumulative total CPU usage for that account would be minimal, but the fact remains that for a few seconds or minutes every day it grinds the server to a halt. How do we handle this situation?
The only way it can be handled is to suspend the account as soon as we notice the CPU spike and require the customer to fix the problem. Not suspending it would mean that all the other accounts on that server would experience problems, this is simply not acceptable.
A further problem is that most customers are not IT experts and will therefore find it very hard to identify and fix the problem, especially if it only arises at random points in the day.
Some customers expect us to fix the issue for them. This is simply not feasible. In most cases it would take 2 or 3 hours for one of our admins to review the web site and attempt to fix it, sometimes longer. The cost to our business would be in excess of $100, while the customer is usually paying us around $10 per month. The numbers don't add up.
If it is an issue with our servers or our network, it is our responsibility to fix, but when the issue is very clearly due to 3rd party software the customer has installed on their account, we simply cannot get involved.
We have been working on a number of tools and changes to our systems that should help significantly with this issue, and we will have this rolled out in the next few weeks.
1. Avoid installing any scripts or software that doesn't come from established, reputable providers.