Forum Moderators: open
Matt Mullenweg says that Wordpress can serve over 20,000,000 page views per month on a low-end dedicated server (a "$100/mo server").When do you know you need a dedicated server? I run 4 drupal sites on one regular account/server and each roughly have 1K-4K visitors/day. Do you the sites shut down and saw low on server when the traffic goes higher? And is that when you know you need to upgrade to a dedicated server? Do you know a rough estimate of traffic when you need to think of dedicated servers?
All of my sites are technically on shared servers. One is on a shared high-performance server at an academic supercomputing center, so that outperforms most dedicated servers. The rest are on cheap shared servers and one of those is struggling with response times and I've been asking the same question.
The chief advantage of shared versus are
- predictability - the load on the server is your load an nobody else's
- security - nobody else playing your sandbox
- neighborhood - not sharing a machine with spammers, etc.
But you can't possibly answer the question in terms of page views, visitors, or anything like that. I suppose the most common rule of thumb is that if your sites are at all important for your livelihood, you probably want to be on a dedicated server.
1. Shared server is shared
In other words, you can't know when you have to move based on the number of pages you're serving, because you can't know how many pages are being served by other sites and when their peak times are. You can log into your *nix shell and run top or other metrics for load, but there's a lot of info you won't have. If it looks like the load on your shared server isn't that bad, you can move on to figuring out how your site performs.
2.Stress test your site at a couple of times and see what you get
Keeping in mind that you don't have control of when another site on your server gets Dugg, you can nevertheless do some server benchmarking [webmasterworld.com], but again, you won't know how representative the conditions are at that moment. But you'll at least see how much that server can handle at that moment.
So let's say you guess (and you can only guess) that your shared server is mostly being bogged down due to your traffic at levels below your peak loads. You can throw more hardware at it, or you can try to find bottlenecks by...
3. Profiling your application.
It's quite possible that one module you don't really need is very expensive in terms of CPU time. For this, you'll need to profile your app, ideally on a separate but similar server to the one it's running on (there are some functions that are fast on Unix and slow on Windows). I'm sure there are many ways to do this, but the only one I've used is the set up XDebug [xdebug.org] to do profiling [xdebug.org] and then something like Cachegrind [valgrind.org], [urlhttp://sourceforge.net/projects/wincachegrind/]Wincachegrind[/url], MacCallGrind [maccallgrind.com], KCachGRind [kcachegrind.sourceforge.net] or WebCacheGrind [code.google.com] to analyze the data. These are visualization/analysis tools for cachegrind data and which you use depends on where you want to analyze the data, and has nothing to do with which system you're running for your server.
I've only used WinCacheGrind personally.
If im gonna pay 100 bucks/month for my sever, I will wait til I make over 2K/mo OR once my sites slow down and I am forced to do an upgrade.
Like reprint said, though, if you aren't caching aggressively, start doing so. That will way reduce your load on the server.
Drupal with a lot of modules is a *killer*. I strongly recommend the Boost module unless your site is all about real-time interactions with users (you could exempt a forum from Boost).
It will speed up load times and way reduce page generation overhead.
I have a couple of drupal sites on a shared server too. One only has a couple of plugins and so it isn't a problem. I static cache the home page and otherwise just let it go.
The other one has little traffic, but so many modules, Boost is a necessity.