IBM eServer pSeries education
Skip to main content

System p education

Remedies for memory-bound systems:
IBM AIX 5L V5.3 system performance tuning series - Part 2
Overview of AIX Virtual memory concepts

The AIX® operating system uses the virtual memory manager (VMM) to control memory and paging space. Virtual memory provides a methodology for making the real memory appear larger than its actual size. It is composed of the real memory plus physical disk space, where those portions of a file that are not currently in use are stored. The physical disk component of virtual memory is divided into three types of segments based on the location of the storage that is used to back the page in the following ways:

  • Persistent segments are backed by a local file system on the pSeries system called the journaled file system (JFS).
  • Working segments are backed by the paging space.
  • Client segments are backed by a file system on a network file system (NFS), enhanced journaled file system (JFS2), or a Veritas® file system (VxFS).

Virtual memory segments are classified as containing either computational1 or file2 memory that is used to balance the types of pages stolen by the page-replacement algorithm. VMM is responsible for allocating real memory page frames and resolving references to pages that are not currently in real memory. VMM maintains a free list of available page frames. When the number of pages on the free list is low, VMM uses a page-replacement algorithm through a page frame table (PFT) to determine which virtual memory pages that are currently in RAM will have their page frames reassigned to the free list.

The AIX 5L operating system provides support for both 32-bit and 64-bit user process memory models. User processes can use either 32-bit or 64-bit addresses. The 32-bit addresses provide some performance benefit because the instructions might be more compact. However, applications that need to access more than 2 gigabytes of data must use 64-bit addresses3.

Figure 2
Figure 2: Virtual memory concepts

From the point-of-view of a 32-bit process, memory is further divided into 16 segments (Figure 2). Each process that is running uses these 16 segment registers. The segment registers are hardware registers located on the CPU. When a process is active, the registers contain the addresses of 16 segments that are addressable by the process. Each segment contains a specific type of information. For example, segment 0 is used for the kernel, segment 1 is used for the programmer's text, and segment 2 is used for process data. In the AIX 5L environment, virtual memory segments are partitioned into 4096-byte units called pages, although some systems also support larger page sizes (for example, 16 megabytes). Similarly, real memory is divided into 4096-byte page frames. Each page is either located in real physical memory (RAM) or is stored on disk until it is needed. When a page is required from a disk location, it is loaded into a page frame in real memory and a page fault is generated.

The function of the VMM from a performance point-of-view is to do the following:

  • Minimize the processor usage and disk bandwidth that results from paging.
  • Minimize the response degradation that results from paging because of a process.

1Computational memory consists of pages belonging to working storage or program text segments. It includes working storage memory of processes (stack, data, bss [basic subsystem]), the kernel text and data, kernel extensions, shared library data, and shared memory segments (that is, the DB2 Universal Database™ bufferpool).

2File memory consists of the remaining pages. These are usually pages from permanent data files in persistent storage or client storage. They can be normal data files or executables, but the AIX operating system gives preferential treatment to executables and, as such, treats executable file pages as computational pages.

3The 64-bit memory model can address up to 1 exabyte of memory. 256-megabyte memory segments are used as in the 32-bit memory model, but approximately 4.3 million segments are available instead of 16. Segments are dynamically allocated within specified ranges for various uses.

[Back | Next]

 
  Table of contents
cgif cgif
->
Abstract and introduction
->
Performance tuning flowchart
->
Overview of AIX Virtual memory concepts
->
Remedies for memory-bound systems
->
Summary
->
Resources
->
About the authors
->
Trademarks and special notices
cgif cgif
cgif