Advantages of splitting db and front end on 2 VPSs

ibaker

Well-known member
Can someone tell me the advantages of splitting a site over 2 VPSs...the db on one and the front end on another or does it not really matter?

I have an added bit of complexity with having a video chat room and instant messenger which requires 2 to 3 gig of ram...should that be on another VPS :(

Finally, if I am going for a new VPS setup, should I consider Litespeed or nginx on it for 2 XF sites...which one is better for XF (150 concurrent, 400meg db, 6,500 reg'd users, 150k posts in 16k threads - but these will grow)

Thanks for your advice!
 
With those stats your xenforo will run just fine on one VPS.
You could consider moving the hosting of the IM/Video on the second VPS?

But, a benefit is, 2 vps is 2 i/o operations resources available to you, and ram, and cpu, etc.

While traffic hits the web server, and increasing it's load.
The MySQL db could hit the second vps, as sql server, not being affected much by vps_1's load (issues).
 
Thanks Floris
So having the front end on a vps with say 2gig ram and the db + video on a 2nd vps with say 4gig ram would be the way to go...is this your advice?
 
how can somebody manage the database in other server? I mean...in that case you shouldn´t used "localhost" as the path, but how you set the path to phpmyadmin from the other server? with the ip?
 
Use the internal IP of your DB server. You should not be charged for the traffic between 2 servers, provided they are on the same host.
We have 2 servers setup like that, one for webserver, another for DB. Both use nginx.
 
how can somebody manage the database in other server? I mean...in that case you shouldn´t used "localhost" as the path, but how you set the path to phpmyadmin from the other server? with the ip?
you can manage a db server without having a webserver fullstop. i manage mine with a local client over ssh.
 
yeah, splitting two will work, we did it on our previous hosts, just becareful with the inter-server speed as sometimes its not great - with a decent host though it should be fine. I had to up ours from 10mb/s to 100mb/s and it took a lot of hassle to do so. Was partly my fault though I didn't spot that their network speed was limited to 10mb/s before I placed the order.

It comes down to cost though, when I moved servers earlier this year, it was cheaper to get one big server than 2 smaller ones and so far its much quicker on one big box.

We've got 100K users, 4.5m posts etc...
 
I am on Linode and running 2 512 vps. Same cost as running a 1024, but it is much faster with 2. I am running APC on the web side and memcached on the DB side and with 120ish people (50+ members), web side cpu is usually 4-6 and DB cpu is 2 or less. Like Floris stated, the I/O traffic is what kills you on a active site. Now with 2 servers, your available I/O bandwidth increases, along with ram and cpu. You also get the benefit of easy expansion. If your site starts to grow, you can always add another web server, or get a better spec on the web server and if the DB server is handling the extra traffic, you just leave it alone.

Feel free to hit up my site (in my sig) and check it out.
 
how can somebody manage the database in other server? I mean...in that case you shouldn´t used "localhost" as the path, but how you set the path to phpmyadmin from the other server? with the ip?
You can set a database up to accept a remote incoming per IP, this should be the internal IP.
Some good vps setups understand this is desirable and allow internal traffic between servers.

Another great means for SQL load spread is to have 2 vps where 1 is the apache web server with master sql for read/write, and a read only slave database on the other one. Have a dedicated IP on both, and webserver on the second one as well. You can set 2 IN A records for the domain so it splits traffic based on the IP it gets.

But that's only handy for bigger sites with 1500+ online users and thousands of posts per hour.

Up to 500 online users a vps that's setup smartly will do just fine, assuming it's a good vps host. Especially if you split web on one, sql on the other.
 
Also do not forget to specify in config.php usage persistent connection for access to a database on other server - before a database server name it is necessary to specify a flag p, for example:
PHP:
$config['db']['host'] = 'p:localhost';
 
Also do not forget to specify in config.php usage persistent connection for access to a database on other server - before a database server name it is necessary to specify a flag p, for example:
PHP:
$config['db']['host'] = 'p:localhost';

I didn't realise this and we've now moved to a mini-cluster. Is the above still necessary?
 
Top Bottom