Increase RAM and Bandwidth

The worst thing short of total failure that can happen to your server is a memory shortage serious enough to start the swapping of entire processes out to disk. When that happens, performance drops quickly, and users wonder if it’s worth their time to wait for your content. It is better simply to refuse the excess connections you cannot handle well than for all of your users to get unacceptable performance. Servers that run as multiple processes, such as Apache, have a configurable limit to the number of processes and simultaneous connections per process. Multithreaded servers provide limits to the number of active threads. You can limit incoming connections by setting the TCP listen queue small enough that you are assured of being able to service the users who have connected.

A system that is short of memory may show high CPU utilization because the operating system constantly needs to scan for pages of memory to move out to disk. In such a case, adding CPU power won’t help. You should add more memory or reduce memory usage. Look at the rate of page scanning with vmstat under Solaris or the Performance Monitor under NT. Under Solaris, the “sr” column tells you the scan rate. Sustained scanning is an indication of a memory shortage. Under NT, the clue is that your processor time will be high and almost identical to privileged time, meaning that the CPU is doing almost no work on behalf of the web server, only on behalf of the OS itself.

There is a limit ...

Get Webmaster in a Nutshell, Second Edition 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.