We have installed Ubuntu desktop edition on our dev server.
I was wondering if there is any noticeable performance loss compared to the server edition.
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It only takes a minute to sign up.Sign up to join this community
As far as I know, there is no performance lost as far as overhead and whatnot. It mostly depends on what you have installed. You can turn desktop Ubuntu into server Ubuntu by installing the same security/monitoring/visualization programs. The server edition just comes with a better set of pre-installed packages suited to a secure, easily maintained server.
Either way, I would recommend NOT installing X server and a desktop environment (GNOME, KDE, etc). This reduces boot time and memory/CPU usage.
Almost all of the difference between Ubuntu Desktop and Ubuntu Server is in the default set of packages installed.
The only real code difference is in the kernel package - the
linux-image-*-server packages have a slightly different kernel configuration to the desktop kernels. Such kernel options include enabling PAE mode (for accessing > 4GiB memory on 32bit systems) and changing the default pre-emption level (which prioritises CPU throughput over task latency).
These won't generally have a major performance impact.
Beyond the fact that an X server is running on the machine (and things like ubuntu-one-client once a user is logged in locally), there's really no difference nor performance impact.
There isn't a "server" version and a "desktop" version of Ubuntu where one magically limits the number of connections you can have to a machine (like some other "workstation" and "server" operating systems of years past).
The different install flavors are simply a different set of starting packages.
The significant performance factor in Ubuntu Desktop is the inclusion of Gnome. Ubuntu Desktop is fine for a server (although a more lightweight desktop environment may be desired), but if you do not need a graphical environment, Ubuntu Server would be preferable.
This is not strictly performance related, but Ubuntu Desktop also contains several packages which would simply not be useful in a server environment, such as OpenOffice and GIMP. These can always be removed however.
The Desktop & Server editions have different kernels that might result in different performance, especially under some specific load conditions. One example reason being that task switching happens more often in the desktop edition's kernel because that improves responsiveness, but task switching incurs some overhead and thus also slightly lowers the performance of (some) applications.
In practice, it's unlikely that you will ever see this difference on a development system, and IME such a system is not under a heavy load, and it probably has other configuration differences that affect performance anyway.
If you want to minimize differences related to the kernel, it's always possible to use the server kernel in the desktop edition.
And of course, in most cases permanently running a desktop system probably has as much or more impact on performance as using a different kernel anyway... ;-)
“... After Ubuntu 12.04, both Server and Desktop variants use the same kernel. Previously, Desktop and Server used different kernels. Because both Ubuntu Desktop and Ubuntu Server employ the same kernel, you can add any packages to either variant. This means that while default installation varies, you can customize your Ubuntu flavor accordingly.
So you might start with Ubuntu Server and install a desktop environment if you decide you can’t run it headless. Alternatively, you could begin with Ubuntu Desktop and add the necessary packages to create a server. Since Ubuntu Server and Desktop share a core Ubuntu kernel, default installation differences don’t preclude future software package installs.”
TLDR: I experienced 15% performance improvement going from desktop to server version.
I have a reasonably high load recursive program written in c++. It generates and traverses a few million tree nodes which all store various "states", and tries to find a "good enough" solution.
For a single input that we use as a benchmark, the program used to consistently take about 14 seconds on an average on the desktop. With the server, the average is closer to 12 seconds. That's almost 15% improvement. (a side note on this benchmark. We use it internally consistently to measure any performance regression resulting from any code changes. Or judge the efficacy of builds / platforms. For example a Linux release build is about 5 times faster than Linux debug. And Linux debug is about the same speed as Windows release, which is about 15 times faster than Windows debug).
This is on exactly the same hardware, and each example running as a headless server. I needed to reinstall Linux (because the machine was going to move zones, and I didn't want any private information accidentally sitting on it), and decided to install the server version on a whim. I don't know enough about other programs that the desktop might have been running in the background, and hence slowing down the task at hand. Mine is only a single data point - so take it for what's it worth. Though in my defense, it's a real world usage example. Would love for someone to construct some lab tests and share benchmarks.