3

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?

2
  • 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, 2009 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? Jun 13, 2009 at 19:15

9 Answers 9

4

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.

3

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).

5
  • 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, 2009 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, 2009 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. Jun 13, 2009 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, 2009 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. Jun 13, 2009 at 20:23
2

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.

1

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.

3
  • 1
    I see no reason to use GUI only server applications. GUIs make simple things easy, and complex things impossible. Jun 13, 2009 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, 2009 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 Jun 13, 2009 at 20:37
1

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.

1

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.

1

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.

0

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.

0

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .