The Business Case for More Memory

You need more memory. Really, you do.

I had 256MB of RAM on my laptop; now I have 512MB. This is not enough. This is not enough because I will swap.

Performance optimization, whether on a server or a desktop, is a matter of reducing I/O bottlenecks so that threads are not waiting to execute. In English, so that things can happen as quickly as they can. There are four basic subsystems which can be optimized, ranked in order of their speed.

  • Processor
  • Memory
  • Disk
  • Network

Most processors now are more than sufficient for most user activity. If you see excessive processor usage, it can generally be attributed to a bottleneck elsewhere.

The first place to look is memory. Are the programs which you use frequently entirely resident in memory? No? In that case, you’ll be using a virtual memory swap file on disk. You need more memory.

It may be that while the programs reside in memory, they will read data from the disk into memory, and then exceed the amount of real memory available. This is fine temporarily, but if it is persistent can be a problem. If you are working with large data sets, or with many not-so-recently-used files, you can find yourself in a situation where processing slows while the system waits for files to be read from disk to memory. This is hard to avoid, but the operating system tries. One common method for avoiding slow disk performance is to cache data in memory. You need more memory.

Data transfers over the network are often slower than reading them from disk. One common method for avoiding slow network performance is to cache data on local storage. This way you don’t have to transfer the files again if they haven’t changed. Once they are on disk, the former paragraph applies. You need more memory.

One common method for avoiding slow network performance is to cache data on local storage. One common method for avoiding slow disk performance is to cache data in memory. And one common method for addressing a memory shortage is to swap data to disk. So you need more memory.

Everything goes into memory. When we swap memory pages out to disk, the applications need to wait for the disk subsystem to complete input/output operations before they can execute. This is slow. Slow execution takes more time. Time is money. QED.