I've been developing a website for several months now which I intend to launch before I graduate from college in the fall. It'll run as an online magazine and blog with fresh content rolling in weekly. I've been eying VPS hosting but don't know which package to choose from. What amount of RAM, storage space and transfer allotment is good to start off with?
The website will potentially consist of stories, blogs, photo galleries, podcasts and video (audio and video especially will most likely be hosted by outside services). I'm concerned mostly with loading time; how would 512MB of RAM perform?
I'm not too much of a techy person, so your help would be great! If any info is missing, let me know and I'll fill you in.
Comments
Hello, If audio and video is
Hello,
If audio and video is handled by external services, loading time of this last one won't be your concern. 512 Mo for a unique website looks largely sufficient to me... 256mo would do the work too (until not too heavy load). I host on a single dedicated server with 2go of RAM more than 75 websites...
Moreover, you should not consider only the amount of RAM, but the global aspect of the offer : if you have more than 1go of RAM but a poor CPU, the website won't generate really quickly really heavy page. If you have huge amount of RAM but not a lot of bandwidth, same thing ...
What I mean so is that I would prefer a good homogenous offer than a good spec with poor other aspects.
You can see some offers on : lowendbox.com
Yann
RAM is a good thing
I'm going to sort of disagree w Yann, with some caveats.
RAM, properly utilized, is the single best tool in your toolkit for accelerating page generation and defending against scalability problems.
Using it properly is not trivial -- you do have to get under the hood. But if you have adequate RAM, you can do these things:
Increase the size of the MySQL query cache. Default settings are inadequate. (You should do this anyway, even without installing more RAM. Google for MySQL tuning tutorials.)
Install APC, which will cache precompiled images of Drupal's PHP files in memory. This radically improves performance of any PHP application. You might be able to do this even with limited memory -- but keep an eye on things.
Move Drupal's cache tables into memory, using memcached or APC shared memory. This lets you retrieve cached data without touching MySQL and without touching disk.
Front the entire system with Varnish (VERY non-trivial). This serves anything that can be cached -- not just Drupal output, but files as well -- be instantly served from memory without even touching Apache. This is how huge sites like http://whitehouse.gov/ do it.
The obvious caveats are that in order to do any of this, you have to roll up your sleeves and get deep into system configuration, and you say that you're "not too much of a techy person." And you do have to keep an eye on the costs. I don't understand why the hosting companies charge such ridiculously high prices for RAM availability -- chips are cheap these days! -- but they do.
You can definitely get started on a small box, and 512 may work for quite awhile, depending on what you're doing (lots of image processing?), how many concurrent users, how badly you get hammered by spiders, etc. .... but monitor the system closely. As your traffic grows you'll need to raise the limits on the number of Apache processes. That eats memory pretty quickly. A Linux server will handle that by swapping sleeping processes to disk. Waking them up again is a huge performance hit.
As you exceed your resources the box will "thrash," moving data between RAM and disk, and performance will fall off a cliff. You'll start thinking you need more servers -- when all you really need is more RAM.
As for VPS -- well, I'm generally suspicious whether you actually get what you pay for. Right now ServerBeach has a dedicated Core 2 Duo server with 4 gigs of memory for $79/month. That's an awesomely powerful box for not much more money than a VPS, but you do inherit responsibility for managing the server yourself.
@Yelvington --- I'm on a
@Yelvington --- I'm on a linode server (linode.com). $40 gets 8.4 gigs of memory per month -- just sharing. Rather than Apache, what about Ningx? I'm working on an install currently. Have you used with low-traffic Drupal multisites -- comments?
@guhit1 -- if you do decide to go the unmanaged VPS route (has great benefits but will require you to learn server admin), you can find easy-to-understand and step one, step two instructions for noobs at vpsbible.com It's a clunky site in that it it's sure not pretty and takes a while to get used to for navigation but once you get it, it's very cool..jam-packed with info. He uses putty but you might want to take a look at tunnelier instead. (Note: I get no benefit from mention; just a user) You can get a intro linode for $20 and then go through steps with VPSbible. If you mess up, delete your install and start again. Or you could install a virtual box right on your desktop and do the same without the outlay. (virtualbox.org or vmware.com )
(Sorry for the mistakes, I'm
(Sorry for the mistakes, I'm french)
I agree with all wha't is stated here - I even have applied all what is proposed, and I don't see a disagreement - we're saying different things ;).
Concerning the dedicated server, what I would recommend if you don't have that much money as a student is a cheap dedicated server like the one I'm using at OVH ( www.ovh.com in french ) like the ones here : http://www.kimsufi.co.uk/ks/
or if you need more power under the hood, hetzner :
http://www.hetzner.de/en/hosting/produktmatrix/rootserver-produktmatrix-eq
have good offers too.
Thank you for your responses
@Yannovitch: "I host on a single dedicated server with 2go of RAM more than 75 websites..." Wow. I had no idea you could do that! But I'll take note that you're on a dedicated server and not a VPS. Thanks for the links as well.
@yelvington: Really appreciate the solutions you offer; shared hosting was such a deep disappointment to me -- it'll will never be an option for me again. As to my level of understanding to all of this, I'm getting the general idea but I will be investing a lot of time to learn it fully. I'll probably also look for someone with reasonable experience with MySQL and Apache to help me put this thing online.
@nwwoman: Yeah, I was just looking at linode's packages. Thanks for the link, it's going to save me a lot of time!
Thanks for all of your help, the last thing I want to do is launch a website that'll end up with a huge bounce rate because it takes too long to load up. In terms of funding, I'm willing to invest a little more for performance but when I enter beta testing I'll experiment with solutions you all mentioned and see what works best. Anyways, it'll be quite some time before that happens, but I'll be back to give you more feedback when I do.
Thanks again
Stress test hard before you launch, too.
Stress your site hard before you launch. Find out how many AUTHENTICATED users can retrieve/surf/access/edit/etc on your site at the same time. Maybe all your visitors are going to be anonymous - still, find out.
Stress with anonymous users as well. And mix up authenticated and anonymous.
And very important. Make sure that you have tuned for your memory availability. Check out 2bits.com for lots of good server info as well.
Launching This Month
I'm taking the shared-hosting route, which is already a pain in the butt with Apache flushing out only once every 24 hours, but I find it odd that each time I log in (domain.com/user) it goes to a blank screen (with http://domain.com./user displayed atop). All trouble seems to disappear after I hit F5 and logs me in successfully.
The same thing happens when I add a new post. Clicking submit will result in a blank page (http://domain.com/node/add/story atop) before loading successfully to the story-has-been-created page after a hasty refresh.
I didn't have this problem on my local server and now that it's with Go Daddy's shared hosting I'm a little lost. Also, support personnel from GD tell me that it's a caching problem with the browsers though I have used IE, Firefox and Safari on numerous machines and operating systems.
I eventually plan on moving up to a dedicated server but for now I just want to get the ball rolling. Any ideas?