How Much Memory Do You Need?

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 12, for details. You can also 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 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 have 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 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, but only ...

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.