The answer is “more.” It’s a rule of thumb that you always need more memory. 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 will quickly drop, and users will wonder if it’s worth their time to wait for your content. It is better 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. See Chapter 18 for details. You can also limit incoming connections by setting the TCP listen queue small enough so that you are assured of being able to service the users who have connected.
A server that is short of memory may
show high CPU utilization because it constantly needs to scan for
pages of memory to move out to disk. In such a case, adding CPU power
won’t help; you need to add more memory or reduce
memory usage. Look at the rate of page scanning with
vmstat under Solaris or with the Performance
Monitor under NT. Under Solaris, the
sr column of
vmstat will tell you the scan rate. Sustained scanning for memory is an indication of a memory shortage. Under NT, the clue is that your processor time will be high and almost entirely “privileged” ...