Considering moving to Linode, need suggestions

Hi everyone,

I currently have an account with Dreamhost which is expiring in a couple months and an account with another VPS provider which I am not very happy about. I have three Ruby on Rails applications (live app, the test version of my live app, and a Redmineinstallation), MySQL + phpMyAdmin, and a phpBB install on my VPS, and my SVN is currently being hosted on DH. I would like to combine all of these into one place, and have been considering Linode for a number of months now.

Currently, my VPS with the three rails apps (passenger/apache) + mysql + 2 php apps takes up on average about 450-500MB of RAM (I'm not really sure how much SVN is taking up).

I was considering getting a 720 but it was suggested to me that 2 360s, one as a webserver node and one as a database node, would be a good solution. I am concerned though that one 360 will not be enough RAM for three rails apps (only the live one is heavily used, but still). I'm not really sure where SVN would live in such a setup.

I am interested in people's suggestions – would you go for that sort of set up, or combine it all into one bigger node? Could you think of a better way to organizing two nodes?

Any help would be appreciated! :)

16 Replies

For svn, depends how active it is. You could probably sign up for a 540 and see if that works for you (perhaps move from apache to lighttpd to save some ram) and if not upgrade to a 720.

If you go the two-node approach, and want to send the traffic between them over the private network to avoid paying for the bandwidth, remember that the private network only exists between nodes in the same datacentre.

Also of note is that bandwidth is pooled per-account regardless of datacenter; 2x360 or 1x720 have the same bandwidth allotment, and you could keep one 360 as a back-end that does no net traffic, and use all the bandwidth on the other 360.

I didn't know that– so if I have two 360s and only one is publically accessible, I'd have 400GB of bandwidth? Does that apply to hard drive space as well?

No, just bandwidth; it's a per-account total rather than a per-machine total.

Gotcha, thanks for that info. My concern then, I guess, is that if one node is private and only contains MySQL, will the other node have enough memory for everything else? Or would you stick something else on the mysql node to better balance it?

How much traffic do your site(s) get?

Two boxes is a great solution if you need more mysql horsepower (then your share of the VPS CPU provides), but it's an overkill if you don't have enough traffic to warrant it.

Personally, I'd probably go simple (i.e. a single 720), get it running, and see what (if any) problems occur - then deal with them when you have real results (good or bad) to work with.

My main site gets about 1500-2000 pageviews per day. As I was saying, my existing VPS (with all the same things minus SVN) averages around 500MB of RAM so I want to be able to have more than that in case it's needed.

Assuming things fit, is there any practical benefit to two 360s over one 720?

Unlike memory management (which can be fine tuned via your services config files), there's only so much tuning you can do for CPU use.

Once you've hit that wall, then you need to either get a bigger VPS or split your site across two (or more) boxes in order to have enough CPU for your applications. Having your DB on it's own VPS just makes it easier to allocate resources to that service (i.e. it gets all of the available CPU).

If that isn't likely to happen, then keeping it on one box simplifies management.

The load averages on my current VPS are generally below 0.10 so I don't think CPU should be a huge issue.

@dvandersluis:

My main site gets about 1500-2000 pageviews per day. As I was saying, my existing VPS (with all the same things minus SVN) averages around 500MB of RAM so I want to be able to have more than that in case it's needed.

Assuming things fit, is there any practical benefit to two 360s over one 720?

With some tuning, I'd have to think you could get that RAM number down and fit in a 360. People are doing a lot more than 2000 on a 360.

Are you using a 64 bit OS over at Dreamhost? That memory usage seems high to me for some reason, although I haven't much experience with RoR. If so you could probably get away with even 1 360 if bandwidth permits.

@spearson:

Are you using a 64 bit OS over at Dreamhost? That memory usage seems high to me for some reason, although I haven't much experience with RoR. If so you could probably get away with even 1 360 if bandwidth permits.
I agree, go for 32-bit systems as they generally consume less memory.

IMO Rails is a memory hog, so I'd recommend against getting two 360s.

However, the signup system here is very simplified and automated, so you can sign up for a 360 and experiment with it. Then add a linode to your account to experiment with two linodes. After that you can trash the second one and resize the first to 720 - all these happen automatically and nearly instantaneously (within minutes).

My VPS isn't on Dreamhost (only SVN is), but I'm using CentOS 4.5 i386.

I was thinking about moving to nginx as well (though I've never used it), but I know that SVN needs apache. Is running both on the same machine a bad idea? If I'm going to be running apache anyways, is there any point to having nginx as well?

Thanks to everyone for their assistance, I really appreciate it. :)

I don't have much advice, but:

Some people do run Nginx in front of Apache. I don't know how worthwhile it is – I just run Lighttpd.

You don't have to make svn available over HTTP. If you just need svn:// and SSH access, you don't need Apache and moddavsvn at all.

And you could always switch to a VCS that's easier to set up. ;-)

There's always the matter of security. If your web server is a target, and gets hacked, it will take longer to also compromise your database server. This will probably slow down script kiddies a good deal and give you a chance to shut them down before they reach your customer billing data.

Thank you for everyone's input. I ended up buying a 720 over the weekend. :)

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct