Debian, Ubuntu or CentOS: Choose a Proper OS for Your Server
The choice of OS is 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 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 ypur 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 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, 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 Debian community is mostly helpful when asked about a technical question. All the above features make Debian a good choice when you need using 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 Ubuntu-powered servers I use have had 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 to 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; average lifespan of a version is 18 months. However, there are LTS (long term support) versions that can be used for 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 maximum possible choice of packages.
In 2004 CentOS sprang into existence: 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 second quarter of 2017, while maintenance updates will be provided till November, 2020) makes 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 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 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 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 a 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.
May your servers be quick and safe!