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
- 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.
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 google workspace precio 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.
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 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.
With metered bandwidth you usually have access to much faster connection so your speed can burst up to the hosting provider’s maximum bandwidth capabilities. This enables the user to download the file quicker if capable. Since you are charged per amount of data transfer, you are only limited to the speed of your uplink port.
With unmetered bandwidth you are limited (capped) to certain speed of your connection (10Mbps, 50Mbps, 100Mbps…etc). Amount of data you transfer is not measured. In nutshell hosting company says here is your max speed so you use it up to the max speed or not, you are charged one flat fee for that speed.
With metered bandwidth you have to make sure that amount of data transfer included a month can actually be delivered over a included uplink port.
For example: Lets say with your server you get 6,000 GB of outbound transfer a month but your uplink port speed is 10 Mbps.
With this type of uplink speed if you were to continuously transfer for one month at the maximum speed of 10 Mbps you would only be able to transfer 3,240 GB of data. So to fully be able to utilize all of the allowed transfer usage you will have to upgrade to higher port speed.
Usually hosting companies offer several different types of Operating Systems, but most of them are grouped into Linux/Unix based and Windows Servers.
OS X Server is a very rear breed to find on dedicated servers.
Choosing an operating system is mostly dependent on the requirements of software, libraries and applications you will be running on your server.
Certain software is available on both Linux, Unix and Windows, while others are only available for specific OS.
Linux based Operating Systems are very popular choice since most of them are free and usually require less resources to run then windows.
Control panels allow for easy management of dedicated servers. They allow you setup new virtual hosts, domains, emails accounts and various other tasks that can without a control panel be vary tedious and hard to setup.
Some are free and open source but for most of them you have to pay. Usually paid ones come with more features and support.
Most popular paid ones are: Cpanel, Plesk, DirectAdmin.
Most popular free ones are: Virtualmin GPL, W
If you are a novice with dedicated servers and your web server is unmanaged by the hosting company then I would strongly suggest having some kind of control panel installed. It will make your server management easy and you will be able to spend the nights actually sleeping instead of trying to figure out why your apache server is returning “500 Internal Server Error”:)
One thing to note is that some Control Panels take over your OS and embed them self so deep with the OS that it can make doing setups and installs not supported by the control panel difficult.
Web Hosting Support and Management
Managed or Unmanaged?
Most of the Dedicated Server packages come as “Managed” or “Unmanaged”.
With unmanaged servers it’s your responsibility to manage the server. Meaning that installing and configuring any software on the server falls on you. Unmanaged servers are usually much cheaper and if you do not have any “System Administration” experience it can be difficult to manage the server.
One option is to get some type of control panel which can make the management of the server much easier.
With managed servers responsibility of managing of the server falls on the hosting company. If you are very new to all this or you do not have time to manage it your self then this is your best bet. Usually managed servers are much more expensive. Managed services come with different levels of management. Make sure that you find out exactly what is included in the management of your server, some tasks or software might not be covered and you might get charged hourly support rates.
Is referred to an option that enables you to instantly Hard Reboot your machine. This is usually done via web interface and it is useful since gives you the control to restart the server at your command. Once in a while something will happen with the OS or software on the server so that it crashes or freezes.
This requires the hard restart of the machine (cutting the power off to the machine, and starting again).
If remote reboot is not available, you can usually issue an email ticket or call the hosting company them self and they will perform this for you. Problem is that sometimes support team might not get to your ticket in a while, which is why remote reboot comes in handy.
Things do go wrong and they usually happen when you least expect. Servers crash, Hard drives fail, Processors can burn out and what do you do then? You are possibly thousands of miles away from the server and there is nothing you can personally do. You are in the hands of technical support.
There is all types of hosting companies out there, from those run by one person to those run by hundreds of skilled technicians. Some offer 24/7 manned phone, chat and email support, while some have only limited email support. Be careful when choosing your hosting company, pay good attention to the level of support they provide and see what is covered. For support that is not covered in your plan some hosting companies charge as high as $150 per hour. Make sure you read their SLA (Service Level Agreement) to see if they offer any guarantees for any down time as well