NetWare also provides a virtual memory system that swaps little-used data to disk, thereby freeing memory for more frequently used data. Applications that run in protected address spaces use virtual memory, as does Java*. The following illustration shows the amount memory the server can recognize and what portions the virtual memory system uses.
Virtual memory provides more efficient use of memory and lessens the likelihood that low memory conditions will cause problems with the server. Server operating system modules do not use virtual memory because of the nonpreemptive nature of the NetWare kernel.
NOTE: If an NLM program was designed to use virtual memory and it implemented the needed locking schemes, a NetWare kernel NLM program could be written to use virtual memory.
A periodic aging process assesses available memory to see which data has been used less recently than the rest. Data that has not been used for some time can be moved from memory to disk, thereby freeing memory for other uses.
When the data on disk is needed again, it is moved back into available memory. Because data is swapped in and out of the disk, the available memory can be used for a larger amount of data than its actual physical capacity would allow.
The memory management subsystem assesses the memory needs of all server and NLM processes and determines where the freed memory should be used.
The Java Virtual Machine and any modules that are loaded into protected address spaces use virtual memory. Both the modules and the data they access are subject to being swapped to disk.
When data is moved from memory to disk, it is stored in a swap file. You can create one swap file for each NetWare volume. A swap file is created for volume SYS: by default.
To create a swap file, delete a swap file, change swap file parameters, or view information about the swap file, you can use NetWare Remote Manager, MONITOR, or the SWAP command at the System Console prompt. See Using Virtual Memory.
Swapping the data between memory and disk requires additional system resources or CPU time, but it increases the memory available for use. The availability of the additional memory allows more NLM programs to run in the same amount of memory but they will probably run more slowly. Overall server performance might improve but probably won't.