Server Design

When a system becomes a server, its stability, availability, and performance become a significant issue. These three factors are usually improved through the purchase of more hardware, which is unfortunate. It’s a shame to pay thousands of dollars extra to get a system capable of achieving in all three areas when you could have extracted the desired level of performance out of existing hardware with a little tuning. With Linux, this is not hard. Even better, the gains are outstanding!

The most significant design decision you must make when managing a server configuration is not technical but administrative. You must design a server to be unfriendly to casual users. This means no cute multimedia tools, no sound card support, and no fancy web browsers (when at all possible). In fact, it should be a rule that casual use of a server is strictly prohibited— not only to site users but site administrators as well.

Another important aspect of designing a server is making sure that it has a good environment. As a system administrator, you must ensure the physical safety of your servers by keeping them in a separate room under lock and key (or the equivalent). The only access to the servers for nonadministrative personnel should be through the network. The server room itself should be well ventilated and kept cool. The wrong environment is an accident waiting to happen. Systems that overheat and nosy users who think they know how to fix problems can be as great a danger to server stability as bad software (arguably even more so).

Once the system is in a safe place, installing battery backup is also crucial. Backup power serves two key purposes: to keep the system running during a power failure so that it may gracefully shut down, thereby avoiding file damage or loss; and to ensure that voltage spikes, drops, and other noises don’t interfere with the health of your system.

Here are some specific things you can do to improve your server situation:
● Take advantage of the fact that the graphical user interface is uncoupled from the core operating system, and avoid starting the XWindow System (Linux’s GUI) unless someone needs to sit at the console and run an application. After all, like any other application, X requires memory and CPU time to work, both of which are better off going to the server processes instead.

● Determine what functions the server is to perform, and disable all other functions. Not only are unused functions a waste of memory and CPU, they complicate the process of securing the server.

● Unlike some other operating systems, Linux allows you to pick and choose the features you want in the kernel. The default kernel will already be reasonably well tuned, so you won’t have to worry about it; but if you do need to change a feature or upgrade the kernel, be picky about what you add and what you don’t. Make sure you really need a feature before adding it.

You may hear an old recommendation that you recompile your kernel to make the most effective use of your system resources. This is no longer true—the only reason to recompile your kernel is to upgrade or add support for a new device. Remember: Once a server is in use, don’t change what’s stable and performs reasonably well without a good reason.


0 Responses to "Server Design"

Post a Comment


Managing Shell And its Secrets

Subscribe To Get Update On Mobile

Get updates of latest post on your mobile free