Debian, Ubuntu or CentOS: Choose a Proper OS for Your Server
The choice of OS is the most important choice, when planning to set up a new dedicated server, or virtual machine. Nowadays a user can choose from a variety of free OS of several versions and architecture types (the latter refers in this given case to 32-bit or 64-bit OS).
Linux is a natural choice for most cases when it’s not required to run Windows-specific applications. While there are many free Linux distributions, I will only compare Debian, Ubuntu, and CentOS in this article. Happy users of Fedora, OpenSUSE, Mandriva, Arch Linux, Gentoo, Slackware, Scientific Linux, and less known distributions, as far as I know, won’t need persuasion to leave their favorite OS. I encourage you to become a regular viewer of DistroWatch if you’re haven’t made up your mind about Linux preferences yet.
Let’s talk, in brief, about all the mentioned distros.
Born in 1993, Debian is well known for its profound testing of every new feature/version, and thus of higher stability. It combines the advantages of numerous packages available to end-user with high stability and reliability. The price of high stability is that packages are not the cutting edge of technologies – if you use Fedora or Ubuntu, you most probably have newer versions.
Debian is a distro aimed at system administrators, rather than advanced users. It means it isn’t providing the most convenient user interface, or that many packages, including proprietary (non-free) software – a good example is Skype.
If you plan to create a server that should stay for years, the long-term support Debian usually provides for its releases will be very convenient. For example, Debian 6 (Squeeze), released in February 2011, will be supported till February 2016. Support means beyond other features, updating packages. Note also that upgrades between major versions are very well supported in Debian (better than in alternative distros).
You can also notice that the Debian community is most helpful when asked about a technical question. All the above features make Debian a good choice when you need to use OS for many users without re-installing/upgrading it on a regular basis.
Known since 2004, Ubuntu, based upon Debian infrastructure, is aimed at user’s convenience, more packages, and newer versions available. It means that Ubuntu can be considered less stable (although none of the Ubuntu-powered servers I use have had a noticeable history of crashes and/or severe errors, preventing users from efficiently using the server.
Ubuntu is well known for its user-friendly features. That said, Ubuntu is perhaps the best choice for those who are willing to learn using Linux in everyday life (note: we are talking about advanced users, not system administrators).
A real-life example of using a Ubuntu server: I needed to provide a stable server environment with the last possible version of KVM. Ubuntu was used, providing new enough versions along with acceptable enough stability.
Ubuntu published new versions every 6 months; the average lifespan of a version is 18 months. However, there are LTS (long-term support) versions that can be used for a considerable time without upgrading OS (major OS upgrades are always tricky; they should be avoided as much as possible).
Conclusion: use Ubuntu, when you require the latest possible versions and a maximum possible choice of packages.
In 2004 CentOS sprang into existence: the community-supported free version of Red Hat Enterprise Linux (RHEL). Known for its stability and long support for major versions, CentOS quickly became popular among system administrators.
Superior stability and long support (6.* versions will be fully supported till the second quarter of 2017, while maintenance updates will be provided till November 2020) make it a natural choice if stability (rather than freshest versions) is the goal. Note that CentOS packages are even more out-of-date than Debian ones. If you need the latest versions of all packages, you would either need to build them manually (which is almost always much ado), or choose OS distribution.
Note that there are repositories such as EPEL (Extra Packages for Enterprise Linux), providing good support for the latest versions of much modern server software. Using EPEL, you become quite near to the cutting edge of development technologies (if you need that, of course).
Use CentOS, if the stable and secure OS is what you need the most.
What version to use, 32-bit or 64-bit?
Please consider the following when making up your mind:
you can use more than 4GB or RAM without tricks such as PAE with 64-but software
in general. 64-bit versions are somewhat faster, compared with 32-bit ones
in general, 64-bit versions of executable files are somewhat bigger
My rule of thumb is: it’s useless to install 64-bit if there’s less than 512Mb of memory. You can agree to that, or not – it’s based upon real-time comparisons of many different OSes on many different hosting facilities.
So… Which One?
There always are small differences. Many typical packages (Web servers, SQL database engines, etc) can be named differently across different distributions. If you plan to make uniform maintenance/support techniques, please take that into account.
There’s no “best OS possible”. Thus, create several VPS with different OS, try them and make your choice.