So you’ve outgrown your shared host and it’s time now to maneuver to the true stuff.
Yes we’re referring to dedicated servers, those byte crunching beasts. Finding out all of the options and services can be quite confusing.
But No Worry!
I will attempt and offer you some suggestions and hopefully guide to your perfect server.
So let’s not waste anytime and focus on first segment.
What is a Dedicated Server?
Dedicated Server is really a single computer connected to a network (internet). This computer and all of it’s processing power is specialized in just one person or organization. Meaning that the computer resources are not shared by anyone else. You have the entire control of the machine and you’re free to run any software you would like on that computer.
Generally dedicated servers are accustomed to serve website requests ( html, images, videos…etc) nevertheless they may be used for a number of other purposes as well.
Do I want one or more servers?
To simplify things we will divide the use of dedicated servers into those two groups:
Full Web site Hosting
Specific Service Hosting (Database, email, httpd…etc)
Single Web site Hosting
Hosting of just one or several web sites. In this type 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 may also be referred as “servers” them self.
Here is the common setup for small to medium trafficked web sites since all of the necessary software needed to run the internet site are found on one physical machine.
Advantage to of this setup is that it lowers the price, but disadvantage is that all of the machine resources are shared by all of the software and processes.
Specific Service Hosting
Hosting of just one software or service on it’s own dedicated machine. All of the resources on the machine are dedicated mainly for one form of service or functionality. For instance, one might host only Database Software on the server in order 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 type of setup.
Traditional setup will include one or more server that may 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 quantity of servers. As a group working together these servers are accustomed to process in countless requests a day.
Which setup do you choose?
This needless to say depends upon the quantity of requests and traffic your web site is likely to be receiving. So to manage to answer this question we have to first understand tiny bit in what services are needed for web site to be accessed by the user.
Generally today’s dynamic web sites require two main service types to provide a full working web site to the user’s browser.
WEB SERVERS / WEB SCRIPTS ( apache, IIS, php, perl, java )
DATABASE SERVER (MYSQL, MSSQL, ORACLE)
Utilization of the phrase “servers” in the above text is referring to the applying / software and never to the physical machine. This can be a common term used to spell it out 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 net server in a questionnaire of queries. These queries retrieve data from the storage (hard disk) and return it to the internet server.
As you will see both web and database server interact to provide the last product (web page) to the user.
Usually web server handles more of the logic part so FASTER CPU and bigger MEMORY are usually in need more then Hard Drive speed.
While database server handles more of data retrieval so FASTER HD and bigger MEMORY are usually in need more then cpu speed.
Regardless more memory is obviously needed:)
It’s important to see that all of the server software always uses some of the CPU, MEMORY and HARD DISK resources. Eventually they start fighting within the available resources.
One method to stop this fight within the resources is to separate them onto each own dedicated server.
Another reason to separate service types is that’s more straightforward to optimize the machine to run well for one specific task then it’s for all of the tasks.
For instance:
Since we now understand that Database needs faster Hard Drives, maybe we use higher priced faster Hard Drives in DB machine, and leave the cheaper hard disk drives on WEB machines where HD speed is not as important.
But maybe instead we use faster processors on WEB machines simply because they perform all of the logic.
Carrying it out similar to this we’ve optimal performance without wasting resources and $$$!
They’re just general suggestions, and with respect to the web site and it’s functionality these configurations will vary.
Server Features and Components.
OK now that you know what each (web, db) server is hungry for, how do do you know what components to have?
Because of the sheer quantity of various sorts and models of each component I will have to write several books merely to cover that subject.
So I am just going to offer some general guides for each form of component, which whould assist you to on your next server purchase.
CPU Speed:
This can be a no brainer. More speed (Ghz) that processor gets 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 do better then others in server setups so It is best to do some research on that subject.
Amount of CPU Cores / Processors:
Another no brainer. More cores or processors your server has, more taks it can do simultaneously. Since all of the actions on the server are derived from requests and each request usually spawns another process, you will see how more CPU Cores enables the server to handle multiple requests at exactly the same time.
Number of RAM:
I do believe you start to see the pattern here “MORE “.Naturally that more RAM your server has, more requests it are designed for at exactly the same time. Reason for that’s that each and every request requires certain quantity of RAM so that it can be processed. This amount is dependent of varied factors like: Software type, Operating System, Installed Modules…etc
For instance popular web server software APACHE may take about 7mb to 15mb of RAM per request or process and that’s not accounting for every other processes already running or being spawned to compliment that each and every request.
Memory is probably best investment you may make in your dedicated server.
Hard Drive RPM speed
Again the faster the disk spins, quicker it can reach the info on disk. Some popular Har Disk speeds are: 7200RPM, 10000RPM and 15000RPM.
Biggest performance increase by faster Hard Drives is likely to be seen by applications which access the Disk often. Several of those applications are: Database servers, File Servers and Video Streaming servers.
SATA vs SCSI vs SAS
If you had been wondering what most of these acronyms are related to, they’re the 3 most frequent Hard Drive interfaces used in dedicated server.
Beginning with left with SATA being probably the most affordable but usually not being the best performer . While with SCSI generally you receive better performance then SATA but at higher cost and with way less disk space. With SAS you receive better performance then SCSI and in addition, you get more disk space.
Obviously there will be a lot more differences between these interfaces. Luckily there is a great deal of articles on the web explaining it all. It is best to spend some time researching.
Generally unless you are running very High Transaction DB server you’re fine with SATA. And if you should be searching for best performance and you do not value the price then go with SAS.
To RAID or never to RAID
So yes we’re still stuck with the hard drives. When you see a word “RAID” being used in a server setup, meaning that server has 2 or more HD’s joined in a array forming one logical unit. Raid usually provides increased storage reliability through redundancy. You can find different RAID setups and you’ve probably seen some: RAID 0, RAID 1, RAID 5, RAID 10…etc
Two most frequent ones you will see in server setups are RAID 1 and RAID 5
The thing you need to know about RAID 0 is that provides you with some performance and increased total disk space but does not have any redundancy. If one drive fails, you loose your data.
RAID 1 provides redundancy through mirroring and using cases performance increase, but you do not get increased disk space. If one drive fails you can still continue operating and manage to replace the broken drive without loss in data. This setup requires two Hard Drives.
RAID 5 provides redundancy and increased disk space. It needs minimum on 3 Hard drives. Maximum of disk space you’ll 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.
When you yourself have a robust machine then performance difference between Hardware and Software RAID could possibly be negligible
Generally it’s believed that if available Hardware RAID is really a better choice.
When you yourself have an option to “RAID” your server, I say go for it, at the very least RAID 1. Servers are 24hr nonstop workhorses and any interruption due to single Hard Drive point of failure may cause serious downtime for your online site.
Bandwidth
Bandwidth is the definition of used to spell it out the quantity of data that server will deliver over period of time. Hosting companies can choose to supply various pricing structures for cost of bandwidth.