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
- Specific Service Hosting (Database, email, httpd…etc)
Single Web site Hosting
Hosting of a single or several web sites. In this kind of setup, all of the services/programs (http software, DB software, email software…etc) are installed and running on one dedicated server. Sometimes these services/programs can also be referred as “servers” them self. RAID for Dedicated Servers
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.
Traditional setup will consist of one or more server that will only handle web (http) request, then one or more servers only handling database requests and maybe one or more servers only handling processing of the emails. Theoretically there is no limitation on the amount of servers. As a group working together these servers are used to process in millions of requests a day.
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.
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.
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.