The Dark Side of DreamHost (and Shared Hosting)
Imagine this.
Like a Buffet Restaurant?!
You have booked yourself and a couple of friends to this nice seafood buffet restaurant downtown. It has everything — nice food (and lots of them), good experience, live music, and the best of all — it is cheap. It costs you only five bucks to enter, and you can eat as much you want. Moreover they will actually half your bill if you bring your friends along. What a bargain.
However, when you arrived at the door and paid the admission, you noticed something. Because of this great deal, the restaurant is crowded with customers. Fully packed. People everywhere. Everyone wants to come and enjoy their cheap buffet meal, and apparently there is not enough tables to sit! People walk around carrying their plates, and some of them have just decided to sit on the floor with their oysters, prawns and lobsters. Though the food is plenty, it takes ages to queue up. Not happy.
So the management thought of an idea — how about restricting diners how much time they must finish their meals? They still provide unlimited amount of food, and you can eat as much you want, but you only have 10 minutes to eat them all. When the time is up, you will either be asked to leave, or be asked to pay extra for your own table.
Well, you can feed yourself and be satisfied in 10 minutes, if you really try. But that’s more of a “hack”, then an enjoyable dining experience.
And sometimes being on a shared host with DreamHost is like that.
CPU Minutes Hell
First of all, I must admit that I had been advocating DreamHost. I welcomed their recent custom DNS change and diskspace/bandwidth increase. I loved their affiliation program — and I have almost earned enough through my promotion code to cover my one year hosting cost. They are that generous cheap buffet restaurant, and everyone loves their deals. And because of their affiliation program, no wonder everyone is saying good things about them (with their own referral code posted along side, of course).
But popularity often ends up in overselling. The box I am on might have 2x 2.8Ghz Xeon with HT and 2Gb of RAM, but at the same time it also hosts 500+ user accounts and 1,000+ websites (many I believe might be dead accounts/dead sites)! It certainly doesn’t feel fast. Loading Playground’s index page is usually 1.5-2 second job, which is actually slower than serving from my Pentium III 450Mhz server at home, which usually sits idle.
I guess one issue is how PHP pages are served. In a shared hosting environment, for security reason it is recommended to serve PHP pages using suexec+CGI, so that PHP process runs with webmaster’s uid/gid. It introduced the exact problem which mod_php was designed to solve — forking new processes for each dynamic page is slow and expensive. However, when you share a web server with 500 other accounts, you’ll rather have slow page loads than password file stolen by someone else.
The other problem is DreamHost’s CPU minutes limit, which is not really visible when you sign up. On the page it says:
We measure server resource consumption in CPU minutes. This number indicates how much time a processor spends working for your username. All shared hosting customers should use less than 60 cpu minutes per day for all their users on their account.
It turns out that 60 CPU minute is not really 60 minutes of CPU slice (which would be generous), but 60 minutes of execution time of your processes. I am not really worrying about it at the moment, but my sites, totaling only 1,000 visitors per day, are already using 15+ CPU minutes, yet only 2Gb of bandwidth is consumed every month. You might have a great big buffet, but diners cannot really enjoy it due to time limits!
(Update: Actually I am not very sure about the way CPU minutes are calculated — I better go and read about GNU system accounting. It cannot be the whole execution time as my bash process would kill my limit straight away. It cannot be just user + sys CPU time, as there is no way a WordPress page taking 1 second to generate would use 1 second CPU time — it should be around 0.1-0.2 seconds on this kind of hardware. Maybe time waiting for blocked IO is counted?)
And what if you have exceed the limit? Leave, or pay for your own table. Oh, I mean, get your own dedicated server.
If you search for DreamHost CPU minutes on Google, you’ll find out many other users ran into this same problem way before their disk/bandwidth allocation is exhausted. At the end, that only means DreamHost shared hosting is only useful for small dynamic sites, or large static sites. Although by looking at the CMS packages today, it would be hard pressed to find people working on pure static sites.
What would I do?
What does that imply? For now, I still have lots of CPU cycle to spare, and I don’t really need to worry unless my traffic go quadrupled as well. However when my account is due for renewal, depending on my statistics then, I might consider switching to a Xen-based VPS hosting, for that root account and “guaranteed” CPU cycles.
Epilogue…
Update 2006-05-12: A few months after I have written this blog entry, it somehow becomes the first result on Google SERP if you search for “DreamHost CPU Minute” (and second on Yahoo). Just let me update what has been happening over the last few months since I first wrote this entry.
First of all, this blog is still getting only around 1,000 visitors per day — I suck at blog marketing. In another word — I am still safe from crossing the CPU minutes limit. However I also use my DreamHost account to host other sites now. We’ll see.
Secondly, WP-Cache2 helps. Heaps, as John B has suggested here. A subsequent load of the same page is now much faster. I just need more visitors to make caching worthwhile :)
Thirdly, I have indeed got myself a VPS plan. At a bit more than twice the monthly cost of DreamHost, it is much faster and much more flexible. It is definitely a path people should look at if you are competent in getting a Linux server up and running.
Fourthly, note the title of this blog entry — Dark side of DreamHost (and SHARED HOSTING). Issue with CPU minutes is not limited to DreamHost — if you search around many budget shared hosting companies have similar problems. In fact DreamHost is the one who is very clear about their threshold, and has provided system accounting option for you to diagnose the offending scripts. Many others just kick you out without any explanation. DreamHost should be applaused for that.
Finally, DreamHost has improved over the last few weeks. January was slow — probably due to their large influx of new sign ups as they upgraded their plans. Since then they have fixed their DNS issue which makes connecting to MySQL much faster. My VPS is still 3 to 4 times faster in rendering WordPress pages, but I am generally happy with my DreamHost account. Moreover, through its affiliation program I have already made enough to give me 3 more yers of free hosting. I might as well stay.
More on DreamHost affiliation can be read here — Exploring DreamHost Promo/Discount Code.
Update 2006-06-09: DreamHost has announced no more CPU minute limit on their May news letter. No, it does not mean “unlimited CPU resource”, but instead DreamHost will impose a softer limit and they will be working with their customers over resource hogging sites. I have written my response here at HostingFu.com.
Update 2006-06-18: I have moved this site off from DreamHost and it now sits on an OpenVZ VPS I purchased from VPSLink. It just feels faster, though the host server is much inferior (a P4 3.0Gb with 4Gb RAM). I still have quite a few sites on DreamHost, but I probably won’t put anything CPU intensive on it…
Links to This Article
- Greg's Blog
- Any non-overselling web hosting out there? | HostingFu
- Bargains in Web Hosting (Part 1) | Bargain Blog
Comments
The problem is, they are supposed to be the “DreamHost”, i.e. the hosting service every other geek is praising about (not sure how much of it is tainted by the reward program). Five years ago they used to be more costly but provide higher standard of service. Looks like they have gone down from there.
But maybe it can be said to all other cheap shared hosting services. At least DreamHost has stated their CPU minutes restriction (though not that up-front), and is actively policing it. Hosts that do not have such limitation — either they have not over-sold their service, or their boxes are all in terrible state.
I am not quite sure, as DreamHost is actually my first shared hosting experience.
see,
You have used “only” 800 seconds. Worry about it when it reaches 3600 seconds.
Also with gallery, it does quite a bit of image resizing, which can be expensive on CPU. You might want to reduce the size of the images before uploading.
WP-Cache is your friend in situations like Dreamhost (it’s where I host my site as well). You’ll be able to serve a LOT more pages within the 60 minutes of execution time than you would be able to otherwise.
John,
Thanks for the suggestion. I have actually heard that running WP-Cache is actually slower on DreamHost because IO over mmounted NFS is just ridiculously slow, and process accounting takes the overall execution time than CPU time, even though it is waiting on IO most of the time. But I’ll give that a try next time…
Thanks for this review. What is your website hosted on dreamhosts? id like to take a look at its speed.
Beven,
This very website is one example. It actually loads “okay” after I used WP-Cache as John B has suggested. WordPress control panel feels slower, but the speed really varies depending on the time of the day. I have two MediaWiki sites on DreamHost that feels slow, but then MediaWiki is always slow without your own server farm :(
I’ve just enabled CPU usage reporting in my DreamHost account in the hopes of tracking down where it’s all going (we’re well over our allowed usage at the moment).
But – and this is a big but – DreamHost are being very helpful about it, providing assistance in tracking down the problem and allowing plenty of time for me to find a solution.
Most shared hosting providers will not allow unmetered cpu resource consumption and many of then suspend your site without even a warning. Dreamhost categorically states they will not shut down your site if you exceed the limits. They will send you a email and if necessary they will quarantine your site in another server. If you choose to ignore their email alert they will shut your site down.
I think for the price of Dreamhost you cannot expect to eat the cake and have it too.
However there may be a workaround to overcome this CPU limit by mirroring the site on another server [on Dreamhost ? maybe a damn good idea !!!...its still cheaper than a dedicated or a vps ] if not on Dreamhost then maybe on a third party server.
I had experienced another problem (never got to use all the minutes). Given my 1TB of traffic, I have moved temporarily around 50 (legal) mp3s from a problem-site to DreamHost and served them from there. One subdomain only with mp3s, no site. Each mp3 had around 1.5 Megs and they summed up to around 5GB of traffic per day.
But after 1 day and a few hours, some support guy emailed me “I had to take your subdomain down because it was taking up too many resources and there were too many simmultaneous downloads, affecting other users”. Wait a minute – there’s no CPU usage when downloading a file. It turns out that people used download accelerators which I solved by making A SCRIPT that would disable partial downloads. But after all it’s bulls**t – how can you make 1 TB of traffic if 5 GB per day use too many resources???
Every DreamHost Customers:
let’s do “suggestions” to DreamHost to avoid from such sucks!
you could search “cpu” in the DreamHost Panel: Home ->Suggestions.
please tell this to your friends which using DreamHost.
As of this month, Dreamhost have relaxed the usage limits, according to their newsletter. Goes like this…
(Edit: There is no need to paste in the entire section of a news letter when you can just use a link)
I had a similar (bad) experience with dreamhosters. The server my hosting was on had a constant average load of over 100 and it was taking up to 20 seconds to server a simple html page. I cancelled my package after being told by the support staff that this was normal and they couldn’t do anything about it.
If you want a fast website avoir dreamhosters.com.
TOO MUCH CPU
On your favorite shared web hosting, say we put up a website like youtube.
Upload a single, one and only, 20mb video.
Let’s disregard uploads.
QUESTION (without abusing or “using too much much cpu”)
1) what web hosting?
2) how many people can view the video at the same time?
3) how many people can view the video each month?
i know that dedicated hosting is more suitable, but
is there any shared web hosting where we can put that kind of website without running into any “too much cpu”, “abuse”, or other similar problems.
- slimetoner @ yahoo.com
A nice explanation on how the over sold webhosting companies s*@#.
I have been a victim to this recently albeit mine is a different host. I must say to be very choosy and to clear all doubts u hv before you finally go doing business.
I hv been researching for last two days as I am going to change my hosting company now. may b going to a VPS. I will update abt my research soon on my blog.
> In a shared hosting environment, for security reason it is recommended
> to serve PHP pages using suexec+CGI, so that PHP process runs
> with webmaster’s uid/gid
You are wrong in this aspect. DH uses some kined of FastCGI to use PHP. Under top I see php5.cgi presents with the same PID from few hours. That means: requests are handled effectively (no separate proces for request, requests handled by threads). I bet it is efficient like mod_php version.
I think shared hostring is a sensible option – you have to optimize your app to match enforced limits. Always there’s an application that can kill even dedicated servers.
Add a comment
Gravatar is used. Email address is required but will not be displayed. Please keep your comment on topic. No spamming and/or bad language. First time poster will be moderated. Scott reserves the right to delete/edit your comments.

Yeah, the boom-bust thing seems to be an unfortunate reality of the low end shared hosting world. Whatever flavour of the month being praised on the forums or on blogs almost inevitably gains enough momentum to attract enough customers to burden them to the point where they lose whatever was good about them in the first place. They then sink back to obscurity (they are like sooo 5 minutes ago) while hype builds around this new, exciting host, which is like sooo different to all those other hosts…