Forum Moderators: open
I'm fairly new to server maintenance and the decisions that surround it, and so I was hoping that some more knowledgeable people here are able to help.
I've looked online for advice on this problem extensively, but haven't found any good answers.
Here is the situation:
Our site has been experiencing a recent surge of growth. Last year, we had 84 million users and transferred over 6 terabytes of mostly text data. This year, that usage is already up by 30%. We are currently running the entire site on a single Dell Poweredge SC1420 with maxed out ram (8 gigs). We are running RHL Enterprise edition 4 with Apache. Our site is a dynamic one, based on Php 4 (soon to upgrade to 5) with SQL, serving mostly text pages and occasionally a PDF or powerpoint resource.
With the recent upsurge in visitors, Our server loads are consistently through the roof (5.5 - 7.5) and I've finally convinced the higher ups that we need more hardware. I wish they would have listened to me six months ago, but that is another story :). This leads to my questions.
I've been looking at different options of configuring a second server. I've looked at load-bearing / load balancing setups that use either software or hardware for switching. Would this be the most effective?
I've also looked at an option to just put our SQL databases on the second server (since our SQL Queries are currently causing nearly all of the load) leaving the rest of our site on the first server.
Are there benifits to either of these? What one is recommended? Which one is easier to maintain and setup?
With the first setup, is it possible to run two different operating systems? We'd really like to start to move into using mac servers, but I don't know if Linux and Mac are compatible with a load-balancing setup.
Our funds are not limited, but I think we have some flexibility in what we can request.
Any and all help is greatly appreciated. I'm feeling a little lost and overwhelmed in all of this, so thank you, thank you, for your advice.
-Dana
To prepare for the future, I'd learn about database server replication - that would probably be your next step. (You don't say what database server you are using, so it's hard to offer specific advice.)
Next you might find that PHP is becoming a bottleneck, and it might finally be time for load-balancing. You might start with a front-end server to serve your static content and reverse proxy to a server running the PHP pages. You can later add additional PHP servers and use the front-end as a load-balancer.
We'd really like to start to move into using mac servers, but I don't know if Linux and Mac are compatible with a load-balancing setup
An odd move. What are your reasons?
Load balancing per-se shouldn't be a problem (but, IMO, you don't need it - you said it yourself - most of the load is SQL queries). But I think you are asking for trouble. You'd then have two servers that have to have identical content and configuration, running two different operating systems. What a maintainance nightmare! With the same OS on both machines, it would be easy to maintain both machines in sync. With different OS's, you've lost the ability to leverage commonality.
If you really, really want to move to Macs, move to Macs now, and ditch Linux.
One thing you are going to lose by going to Mac hardware is hardware flexibility. You are limiting yourself to the offerings of a single manufacturer. You want a single-chip quad core? You've got it. You want something else? Sorry, that's what they offer - take it or leave it.
Thank you so very much for your advice. I was leaning in the direction of a dedicated SQL server too. Do you have any specific advice about what to get? We have to make a request for funding, but I don't expect to be able to get more than $6 or $7 k, honestly.
In terms of our potential move to mac servers, most of it stems from issues of ease of use and the way the position is setup. This position rotates about every two years, with a new person (often one who is inexperienced in server maintenance but good with design/coding) taking over. The position currently only is for 10 hours a week, which is not nearly enough time to maintain a site of this magnitude, but that is another story entirely. Linux, frankly, has been a nightmare to maintain for someone new to this sort of thing (like myself, and others who will take over this position in the future). No offense to the Linux gurus here, but I've spent countless hours messing around with it and screwing it up accidentally, and those hours simply aren't available for learning to navigate such a delicate and difficult system. I was drawn to the Mac server because of its ease of use in comparison to our current system.
I just upgraded my MySQL server. I got a Xeon 2 gig, 4 core, 1033 FSB and 8 Gigs memory (I have room for 16G, but the board will take up to 32 if you get 4 G cards). I went with a SATA2 RAID array, using an adaptec 2808 (?) with 5 drives in a RAID 5 array, the sixth as a hot spare (All hotswap). I was able to put in a 7th IDE drive for the OS. I got a Supermicro box and MB. I did that all for 3K. PM me if you want a referral, but you should be able to find someone to get you that easily. I think you could probably do about the same with SCSI 15K's for 4 or so, so you should be fine.
I would also suggest you think about FreeBSD/MySQL. From Macs, FreeBSD is easy- OS X is BASED on BSD. There is a learning curve, but heck, 3 years ago, I did not know what grep meant! I have NO traing, and I am running a few good sized sites now. Google is my friend!
One of the ways you can set up a site for redudncey is to have a number of relativly small webservers conecting to 2 or more database servers that replicate the database.
You can use a NAS to provide the disks for the database servers for aditional redundancy.
You need to work out the cost per hour of being down and you can then use that to work out how much redundancy you need. You might also want to look at a disater recovery plan what would happen now if your single machine died?
And re MAC servers they are very nice Guchi bits of kit but you are paying top dollar for non standard histing kit
stick to dell or if you want to pay more for better quality Compaq or for unix you migt want to look at Sun.
Carfaq - what company did you go with for the build you are discussing?
mjwalshe - Good point. We currently don't have a recovery plan if our main server died. All the data is backed up, but without a second server to run it, we are pretty much out of luck. I have an old mac server I'm using as a testing server, but it wouldn't be able to handle the load. I'll get started on that too and work that into the proposal.
Thanks!
You pay by the hour only for time you actually use, and rates are competitive with VPSs.
You could build an EC2 VM for your site, and have it ready to deploy, without having to pay monthly hosting fees for a hot backup.