How to Choose a Dedicated Server


So you've outgrown your shared host and it's time now to move on to the real stuff.

Yes we are talking about dedicated servers, those byte crunching beasts. Figuring out all of the options and services can be very confusing.

But No Worry!

I will try and give you some tips and hopefully guide to your perfect server.

So let's not waste any time and start with first segment.

What is a Dedicated Server?

Dedicated Server is a single computer connected to a network (internet). This computer and all of it's processing power is dedicated to a single person or organization. Meaning that the computer resources are not shared by anyone else. You have the full control of the machine and you are free to run any software you want on that computer.

Generally dedicated servers are used to serve web page requests ( html, images, videos...etc) but they can be used for many other purposes as well.

Do I need one or more servers?

To simplify things we will divide the use of dedicated servers into these two groups:

Full Web site Hosting

Single Web site Hosting

This is the common setup for small to medium trafficked web sites since all of the necessary software needed to run the web site are located on one physical machine.

Advantage to of this setup is that it lowers the cost, but disadvantage is that all of the machine resources are shared by all of the software and processes.

Specific Service Hosting

Hosting of a single software or service on it's own dedicated machine. All of the resources on the machine are dedicated mainly for one type of service or functionality. For example, one might host only Database Software on the server so that all of the resources on that machine are only dedicated for processing of Database Queries. You are able to handle more queries, or deliver more pages.

Usually medium to high trafficked web sites will run this kind of setup.

Which setup do you choose?

This of course depends on the amount of requests and traffic that your web site will be receiving. So to be able to answer this question we need to first understand little bit about what services are needed in order for web site to be accessed by the user.

Generally today's dynamic web sites require two main service types to deliver a full working web site to the user's browser.

WEB SERVERS / WEB SCRIPTS ( apache, IIS, php, perl, java )

DATABASE SERVER (MYSQL, MSSQL, ORACLE)

Use of the word "servers" in the above text is referring to the application / software and not to the physical machine. This is a common term used to describe the type of application.

Web server handles all of the initial requests from the browser and decides on how and where data from the Database is returned.

Database server handles requests from the web server in a form of queries. These queries retrieve data from the storage (hard disk) and return it to the web server.

As you can see both web and database server work together to deliver the final product (web page) to the user.

Usually web server handles more of the logic part so FASTER CPU and bigger MEMORY are always in need more then Hard Drive speed.

While database server handles more of data retrieval so FASTER HD and bigger MEMORY are always in need more then cpu speed.

In any case more memory is always needed:)

It's important to note that all of the server software always uses some of the CPU, MEMORY and HARD DISK resources. Eventually they start fighting over the available resources.

One way to stop this fight over the resources is to separate them onto each own dedicated server.

Another reason to separate service types is that is easier to optimize the machine to run well for one specific task then it is for all of the tasks.

For example:

Since we now know that Database needs faster Hard Drives, maybe we use more expensive faster Hard Drives in DB machine, and leave the cheaper hard drives on WEB machines where HD speed is not as important.

But maybe instead we use faster processors on WEB machines since they perform most of the logic.

Doing it like this we have optimal performance without wasting resources and $$$!

These are just general suggestions, and depending on the web site and it's functionality these configurations will vary.

Server Features and Components.

OK now that you understand what each (web, db) server is hungry for, how do you know what components to get?

Because of the sheer amount of different types and models of each component I would need to write several books just to cover that subject.

So I am just going to give you some general guides for each type of component, which whould help you on your next server purchase.

CPU Speed:

This is a no brainer. More speed (Ghz) that processor has the faster it can do the calculations and faster the pages are going to get returned to the user.

Some CPU architectures are known to perform better then others in server setups so I suggest you do some research on that subject.

Number of CPU Cores / Processors:

Another no brainer. More cores or processors your server has, more taks it can do simultaneously. Since most of the actions on the server are based on requests and each request usually spawns a separate process, you can see how more CPU Cores enables the server to handle multiple requests at the same time.

Amount of RAM:

I think you see the pattern here "MORE". Needless to say that more RAM your server has, more requests it can handle at the same time. Reason for that is that each request requires certain amount of RAM so that it can be processed. This amount is dependent of various factors like: Software type, Operating System, Installed Modules...etc

For example popular web server software APACHE can take about 7mb to 15mb of RAM per request or process and that's not accounting for any other processes already running or being spawned to compliment that each request.

Memory is probably best investment you can make in your dedicated server.

Hard Drive RPM speed

Again the faster the disk spins, quicker it can get to the data on disk. Some popular Har Disk speeds are: 7200RPM, 10000RPM and 15000RPM.

Biggest performance increase by faster Hard Drives will be seen by applications which access the Disk often. Some of those applications are: Database servers, File Servers and Video Streaming servers.

SATA vs SCSI vs SAS

If you were wondering what all of these acronyms are related to, they are the 3 most common Hard Drive interfaces used in dedicated servers.

Starting from left with SATA being the most affordable but usually not being the best performer. While with SCSI generally you get better performance then SATA but at much higher cost and with a lot less disk space. With SAS you get better performance then SCSI and you also get more disk space.

Of course there is a lot more differences between these interfaces. Luckily there is tons of articles on the internet explaining it all. I suggest you spend some time researching.

Generally unless you are running very High Transaction DB server you are fine with SATA. And if you are looking for best performance and you don't care about the cost then go with SAS.

To RAID or not to RAID

So yes we are still stuck with the hard drives. When you see a word "RAID" being used in a server setup, that means that server has 2 or more HD's joined in an array forming one logical unit. Raid usually provides increased storage reliability through redundancy. There are different RAID setups and you've probably seen some: RAID 0, RAID 1, RAID 5, RAID 10...etc

Two most common ones you will see in server setups are RAID 1 and RAID 5

What you need to know about RAID 0 is that provides you with some performance and increased total disk space but has no redundancy. If one drive fails, you loose your data.

RAID 1 provides redundancy through mirroring and in certain cases performance increase, but you do not get increased disk space. If one drive fails you can still continue operating and be able to replace the broken drive without loss of data. This setup requires two Hard Drives.

RAID 5 provides redundancy and increased disk space. It requires minimum on 3 Hard drives. Maximum of disk space you can have is:(Size of Smallest Drive) * (Number of Drives - 1). If one HD fails you can still continue your operations.

RAID can be implemented via two common methods, via software or via hardware.

Software RAID uses Computer resources while Hardware RAID uses it's own dedicated resource on the card.

If you have a powerful machine then performance difference between Hardware and Software RAID could be negligible

Generally it is thought that if available Hardware RAID is a better choice.

If you have an option to "RAID" your server, I say go for it, at least RAID 1. Servers are 24hr nonstop workhorses and any interruption due to single Hard Drive point of failure could cause serious downtime for your web site.

Bandwidth

Bandwidth is the term used to describe the amount of data that server will deliver over period of time. Hosting companies can choose to offer various pricing structures for cost of bandwidth.

But some of the most popular ones are:

Metered Bandwidth

Unmetered Bandwidth

Metered bandwidth packages usually come with certain amount of included bandwidth a month and if going over the included limit you are charged certain fee per transferred GB ( GigaByte ) of data.

Unmetered bandwidth packages allow you to to transfer as much as you can at the maximum included transfer rate. This maximum transferred rate is measured in Mbps ( megabits per second ).

Each pricing structure type offers its own advantages and disadvantages.