The Windowing System

There is no need for a windowing system on a web server. Users will not benefit from it, because they can’t see the server’s screen. On the contrary, users will suffer from a windowing system because it uses CPU and a great deal of RAM. Eliminating use of the windowing system avoids problems caused by process priority shifting depending on where the mouse is at any given time. On most windowing systems, it is now standard to increase the priority of processes running in or started from the currently selected window. A web server is likely to suffer when an interactive user is sitting at the keyboard, running jobs with higher priority.

You can see this for yourself with a simple experiment. Say you start a single httpd process from an xterm under Solaris. Here’s a little sh script that will show you the priority of that httpd once per second. The priority is the number in the seventh column from the left:

while true
do
ps -cle | grep httpd
sleep 1
done

As you move your mouse out of the xterm and click into some other window, you’ll see the priority of httpd drop by 10. When you move your mouse back into the xterm where you started httpd, you’ll see its priority increase by 10. This is probably not what you want for a dedicated web server.

It is quite straightforward to avoid starting X on Unix systems, and to do maintenance in terminal mode or through telnet sessions. Windows and the Mac do not give you that option; you are forced to expend resources on their windowing ...

Get Web Performance Tuning now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.