Recently I've had quite a few discussions with one or two colleagues about the reliability of Dreamhost. It seems that many people have very different experiences hosting their websites with them. Personally I've felt things have been pretty good so far particularly given the cost of the service. In fact I've made more money from referrals than I've had to pay in hosting so the service has been essentially free to date. I feel can't complain too much and that combined with the support team's good technical knowledge and willingness to cater for random random requests such as set up wildcard DNS and granting permission to install custom software has meant I've been reluctant to look elsewhere.
Of course perhaps this flexibility contributes to instability and I wonder if one's experience varies depending on the web server your sites are located on. Perhaps the seemingly different experiences encountered simply reflect the activities of the other customers sharing the same server as you. In a shared hosting environment it only takes one person's poorly written or particularly intensive script to negatively impact the service provided to everyone else and this holds true no matter what provider you choose.
I'm guessing not everyone needs the level of flexibility Dreamhost provide and I'm also guessing that not everyone requires rock solid uptime for every site they host either. What if they let you select the balance between flexibility and performance required for each new site added. Each site could then be configured on a server which most closely matched the profile you'd specified. Some servers would allow flexibility, others would be relatively locked down to limit the potential for problems - the best of both worlds, perhaps.
I think the other thing that Dreamhost, and other shared hosting providers should do, is facilitate the availability of development environments. I wouldn't be surprised if many people develop their sites on Dreamhost in the absence of a local development environment. There's a number of reasons why this might be the case but I'm certain all that unfinished and potentially buggy code can't be helping the situation much.
One of the things we've discussed is if one really knows the true availability of one's site. Being based in the UK with the time difference that entales means it's likely I'm asleep when Dreamhost, and therefore my site, encounters the most load. Out of curiousity I set up a trial account with Pingdom, a really cool server monitoring service, and have been monitoring the uptime of my site for the last 21 days. It attempts to connect to my site every 5 minutes from numerous locations around the world and records whether or not it sucessfully retrieved the site. So you can be sure it really has reached your site and not a server error you can specify a textual string it should check for once it's retrieved the page. The service keeps a detailed log, calculates the length of downtime encountered and provides detailed charts of percentage uptime and response times.


So far this month I've had 4 instances of downtime, the longest continuous outage recorded at just over 2 1/2 hours, with a total of just over 5 hours when my site was unavailable. This equates to 98.92% availability, not fantastic but not that bad either and inline with what I'd expect for such a service. Response times have varied from 764ms to nearly 2 seconds.
It goes without saying that in reporting these figures I'm assuming that Pingdom's service is accurate. I've got no reason to believe it isn't but I'd be interested to hear about anyone else's experience.
So there we have it, for now I'll be staying with Dreamhost. They've provided the best service of any shared hosting provider I've tried so far and unless I decide to make the move back to a (virtual) dedicated server or colocation I think I'm unlikely to find much better elsewhere.