About Swap Space

It is important for administrators to understand the features of the SunOS swap mechanism in determining:

Swap space requirements

The relationship with the TMPFS file system

Recovery from error messages related to swap space

Swap Space and Virtual Memory

The Solaris software uses some disk slices for temporary storage rather than for file systems. These slices are called swap slices. Swap slices are used as virtual memory storage areas when the system does not have enough physical memory to handle current processes.

The virtual memory system maps physical copies of files on disk to virtual addresses in memory. Physical memory pages which contain the data for these mappings can be backed by regular files in the file system, or by swap space. If the memory is backed by swap space it is referred to as anonymous memory because there is no identity assigned to the disk space backing the memory.

The Solaris environment uses the concept of virtual swap space, a layer between anonymous memory pages and the physical storage (or disk-backed swap space) that actually back these pages. A system's virtual swap space is equal to the sum of all its physical (disk-backed) swap
space plus a portion of the currently available physical memory.

Virtual swap space has these advantages:

The need for large amounts of physical swap space is reduced because virtual swap space does not necessarily correspond to physical (disk) storage.

A pseudo file system called SWAPFS provides addresses for anonymous memory pages. Because SWAPFS controls the allocation of memory pages, it has greater flexibility in deciding what happens to a page. For example, it might change the page's requirements for disk-backed swap
storage.

Swap Space and the TMPFS File System

The TMPFS file system is activated automatically in the Solaris environment by an entry in the /etc/vfstab file. The TMPFS file system stores files and their associated information in memory (in the /tmp directory) rather than on disk, which speeds access
to those files. This results in a major performance enhancement for applications such as compilers and DBMS products that use /tmp heavily.

The TMPFS file system allocates space in the /tmp directory from the system's swap resources. This means that as you use up space in /tmp, you are also using up swap space. So if your applications use /tmp heavily and you do not monitor
swap space usage, your system could run out of swap space.

Use the following if you want to use TMPFS but your swap resources are limited:

Mount the TMPFS file system with the size option (-osize) to control how much of the swap resources TMPFS can use.

If you are close to running out of swap space, you can use your compiler's TMPDIR environment variable to point to a larger, real directory.

Using your compiler's TMPDIR variable only controls whether the compiler is using /tmp or not. It has no effect on other programs' use of /tmp.