Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I want to build a high performance web server. I will use Ubuntu Server 9.04.

It would be convenient to install the GNOME desktop, but I could manage by command line only.

How much does the GNOME Desktop slow down the performance of the web server or server in general? I want to determine if the performance hit is worth the desktop.

Also, how does the Webadmin tool impact server performance?

share|improve this question
1  
What sort of hardware are we talking about? That will be what determines the impact of running extra services that come with a desktop environment. –  LukeR Jun 13 '09 at 1:21
    
I have not purchased any hardware yet. This is a different question, but what specs would you consider for a high-performance web server? –  Christopher Altman Jun 13 '09 at 19:15

9 Answers 9

up vote 4 down vote accepted

As pointed above, it shouldn't have a big impact on your server performance. I wouldn't install a whole ubuntu-desktop. Lightweight Gnome-core should be definitely enough for a server.

sudo apt-get update

sudo apt-get install xorg gnome-core gdm gnome-media gnome-system-monitor gnome-system-tools gnome-volume-manager gnome-utils gnome-app-install synaptic firefox

Optional:

sudo apt-get install sysv-rc-conf
sysv-rc-conf gives an easy to use interface for manag‐ ing "/etc/rc{runlevel}.d/" symlinks
Find 'gdm' (Gnome Display Manager) and uncheck the boxes for runlevels 2 and 3.

Now you will start your desktop by typing

startx

at the console prompt.

share|improve this answer

GNOME loves to pre-cache memory, so if you're running the GNOME Desktop, you will likely see a large amount of RAM gobbled up very quickly. This isn't a bad thing, for a desktop. While this cached memory is not in direct use (it should be free when needed), there is a performance hit.

If you are really concerned with performance use something lightweight like openbox (with gtk).

I would however discourage the use of a gui on a server. The gui should be on your desktop, and ssh should be enabled on your server. It might seem easier to run GNOME directly on the server, but your goal should be to run as little as possible on every server. Servers are not fancy desktops (even if you current server is an old desktop system).

share|improve this answer
1  
Given how cheap memory is today, and the amount of memory that modern systems can use, it seems unduly limiting to say, "No GUI on a server." For example, without a GUI, how do you run multiple VIM/EMACS sessions at the same time? How do you run a merge tool like kdiff? –  Eddie Jun 13 '09 at 3:51
1  
@Eddie: To run multiple vim/emacs sessions see GNU screen and/or X11 forwarding (ssh feature, look at -X). X11 forwarding lets you run kdiff as well. –  derobert Jun 13 '09 at 4:44
    
For a high performance machine, that memory will give you space for a few extra apache processes. Also, there are plenty of ways to remotely manage a server with out a GUI. –  Dana the Sane Jun 13 '09 at 7:11
1  
I understand that it's possible to manage a server with text-only tools, and I that some prefer to do things this way. I hand-edit many of my system configuration files. However, many of the GUI config tools are very nice. They don't all suck! I have no problem with advice to use openbox or its peers, but it's unnecessarily limiting with modern computers to suggest it's a problem to use X. @Dane the Sane: You would run a server so close to its memory limits that a couple hundred Meg would make a difference? Spend $10 more on memory! :) –  Eddie Jun 13 '09 at 15:57
1  
Servers are for serving. Not running GUIs. @Eddie, all of those processes mentioned can be run on a desktop with the servers file system mounted over sshfs. You can run as many vim/emacs sessions as you want, a lack of GUI will not limit this. Open a terminal and type emacs -nw then repeat the process as many times as you can bear. Works for me. –  Joseph Kern Jun 13 '09 at 20:23

Up to now, I've always thought of this as a matter of security rather than performance -- the extra overhead of ensuring gnome and associated packages were up to date. I'd never worried too much about the performance aspect of it, especially since most of the time our linux servers are running without me or anyone else logged in locally.

share|improve this answer

I can't imagine that the GNOME desktop would slow things down in any appreciable way, except perhaps by using memory that you might want to allocate to other processes. But memory is very cheap these days, so this is a small issue.

Applications that you run while logged in are far more likely to have an impact than GNOME itself. At the moment that you log in, a number of applications will load, and that will have a momentary impact on CPU performance of other applications due to the disk being heavily used for a few tens of seconds, max.

I also cannot imagine Webadmin or any other web app causing a significant performance loss on a server. Not unless you are aggressively using it or unless it is somehow under web attack, causing a large and unusual number of requests going to that web app -- far more than a human being could enter in the same time period. A firewall can prevent that from occurring.

I see no reason today to run any server without a GUI.

share|improve this answer
1  
I see no reason to use GUI only server applications. GUIs make simple things easy, and complex things impossible. –  Joseph Kern Jun 13 '09 at 1:31
1  
However, a console makes many things very difficult. At least with X (GNOME, KDE, ...) you can open multiple edits side by side. You can run kdiff and similar tools. Just because you run GNOME doesn't mean you're restricted to using someone's wizard or GUI. VIM and EMACS work just as well under GNOME and KDE as they do in a text console. The difference is, in a GUI environment, you can run many text editors at the same time. –  Eddie Jun 13 '09 at 3:47
    
I think you're just using the wrong GUI. I can run many terminal apps side by side in xmonad. img522.imageshack.us/i/200906131625411280x800s.png –  Joseph Kern Jun 13 '09 at 20:37

Having these packages installed and available really doesn't affect performance until you start using them. Then, the performance hit is going to be dependent on how much that particular component is used.

As far as server maintenance goes, I would use a configuration management system like Chef or Puppet that lets me 'program' the environment through declarative resources, rather than use a web based GUI to manage things without understanding how they actually work.

share|improve this answer

Also remember that there's a difference between having the GNOME desktop available on the system and running a graphical login session all the time.

As mentioned above, you can leave the system in runlevel 3 (multi-user with network but without a graphical login session), then start it on demand using startx.

But you don't have to run it locally - you can ssh in with X11 forwarding turned on a do the same. So long as your network connection isn't squeezed through a thin pipe at some point, this will give you the full graphical experience while minimizing the resource usage on the server. All you'll be running is the X11 clients (the desktop, xterm, etc.) without also running an X11 server on the system to render the output of the clients.

share|improve this answer

Why use a Gui on the server box at all, when you can use webmin or ispconfig. These are two of the popular web gui interfaces for a linux server. You can do everything server related from a remote desktop with a gui feel to interface.

share|improve this answer

I didn't find the performance to be killer and the added usability is a bonus. Of course, if you can get by without it, it's better - but don't limit yourself if you feel really lost otherwise.

share|improve this answer

Do not forget that if you need an X11-based utility running on the server (eg a full web browser on a mail server to file delisting requests on some RBLs that you might inadvertently have been put on by unrelated activity), you will not need a local X desktop on that server; you can use X11 fowarding in SSH or even direct X networking to run that app on the server and display it on a client.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.