Knowledge Base:Is swap space really necessary

Synopsis
During a Linux installation, the Gentoo Handbook recommends to setup a swap space (preferably a partition) for the system.

Sometimes the question is asked: is swap space really needed?

Environment
This article applies to all Gentoo Linux systems.

Analysis
Linux uses a concept of virtual memory, causing applications to think they have access to all possible memory. Even more, they can see an entire address space at their disposal, regardless how much memory is really available in the system. This concept allows for simplified application development (as developers do not need to care that their programs will actually run simultaneously with others), isolation, etc. This also means that an applications' virtual memory needs to be mapped somehow to real, available memory. This is done by the Linux kernel virtual memory management subsystem.

When the sum of all running applications (and their memory requirements) and the Linux kernel itself (as it also has need for memory) exceed the available physical memory in the system, then the system is in trouble: applications still see lots of free (virtual) memory, but there is shortage on real memory. When that happens, the Linux kernel has two choices:


 * 1) If swap space is available, it will move some data from RAM to the swap space
 * 2) If swap space is not available, it will start killing applications to free memory

Resolution
It is not possible to give a clear cut answer to the question "Is swap space really needed". Of course, if a system is under "full load" and only a little memory available, then swap space should be available to have some "comfort space" when working on the system. On the other side of the spectrum, if a system is under a "full load" and lots of memory is available, then there might never be a need to move information to the swap space.

To err on the side of safety, the Handbook provides instructions to create swap space. Generally speaking, if the system actively uses swap space, then RAM should be added or memory load should be reduced (jobs killed, application closed, etc.) to free up virtual memory. Swapping to and from the hard drive can significantly increases wear and tear, especially on solid state drives (SSDs).