Digital UNIX
PrevChapter 5. Virtual MemoryNext

Improved Memory Reclamation Policy

The memory reclamation policy was enhanced in Digital UNIX Version 4.0 to improve system performance. In previous releases of the operating system, once the system began running out of physical memory, global paging would begin to reclaim memory, attempting to select pages fairly between the Unified Buffer Cache (UBC) and VM. However, as the system runs and files are opened and closed, a large percentage of memory in the UBC is always referencing old, closed files−−owing to its file caching algorithms. As a result, attempting to select some pages from VM and some pages from the UBC is actually unnecessary initially, since theoretically only 10% of the pages in the UBC are dirty, whereas almost all the pages in VM are dirty (in actual practice, however, the amount of dirty pages in the UBC is much smaller than 10% since most of the pages in the UBC are not in use). Because the UBC, unlike VM, contains so few dirty pages, it is much more efficient to reclaim pages from the UBC first, down to some configurable level, than it is to begin global paging immediately.

In Digital UNIX Version 4.0, the page reclamation policy was further enhanced to take advantage of the many unreferenced pages that are in both VM and UBC. When a system begins to exhaust its physical memory, memory is first reclaimed from the UBC down to a threshold defined by the parameter ubc-borrowpercent. This parameter is set by default to be 10% of the memory in the UBC and is configurable. If, after all unused memory is reclaimed from the UBC and the system still requires more physical memory, global paging is then invoked.

In effect, this policy can double the load that can be placed on a system before demands for memory begin to noticeably degrade performance.


PrevHomeNext
External PagerUpRewrote Swap Allocation Mechanism