[ Previous | Next | Contents | Glossary | Home | Search ]
AIX Versions 3.2 and 4 Performance Tuning Guide

vmtune Command

Purpose

Changes operational parameters of the Virtual Memory Manager and other AIX components.

Syntax

vmtune [ -b numfsbuf ] [ -B numpbuf ] [ -c numclust ] [ -f minfree ] [ -F maxfree ] [ -k npskill ] [ -l lrubucket ] [ -M maxpin ] [ -N pd_npages ] [ -p minperm ] [ -P maxperm ] [ -r minpgahead ] [ -R maxpgahead ] [-u lvm_budcnt] [ -w npswarn ] [-W maxrandwrt]

Description

The Virtual Memory Manager (VMM) maintains a list of free real-memory page frames. These page frames are available to hold virtual-memory pages needed to satisfy a page fault. When the number of pages on the free list falls below that specified by the minfree parameter, the VMM begins to steal pages to add to the free list. The VMM continues to steal pages until the free list has at least the number of pages specified by the maxfree parameter.

If the number of file pages (permanent pages) in memory is less than the number specified by the minperm parameter, the VMM steals frames from either computational or file pages, regardless of repage rates. If the number of file pages is greater than the number specified by the maxperm parameter, the VMM steals frames only from file pages. Between the two, the VMM normally steals only file pages, but if the repage rate for file pages is higher than the repage rate for computational pages, computational pages are stolen as well.

If a process appears to be reading sequentially from a file, the values specified by the minpgahead parameter determine the number of pages to be read ahead when the condition is first detected. The value specified by the maxpgahead parameter sets the maximum number of pages that will be read ahead, regardless of the number of preceding sequential reads.

In AIX Version 3.2.5, no more than 80% of real memory can be pinned. In AIX Version 4, the maxpin parameter allows you to specify the upper limit on the percentage of memory that is pinned.

AIX Version 4 allows tuning of the number of file system bufstructs (numfsbuf) and the amount of data processed by the write-behind algorithm (numclust).

In AIX Version 4, you can also modify the thresholds that are used to decide when the system is running out of paging space. The npswarn parameter specifies the number of paging-space pages available at which the system begins warning processes that paging space is low. The npskill parameter specifies the number of paging-space pages available at which the system begins killing processes to release paging space.

vmtune can only be executed by root. Changes made by the vmtune command last until the next reboot of the system. If a permanent change in VMM parameters is needed, an appropriate vmtune command should be put in inittab.

Attention: Misuse of this command can cause performance degradation or operating-system failure. Before experimenting with vmtune, you should be thoroughly familiar with both "Performance Overview of the Virtual Memory Manager (VMM)" and "Tuning VMM Page Replacement".

Flags

-b numfsbuf Specifies the number of file system bufstructs. The default value is 64.
-B numpbuf Specifies the number of pbufs used by the LVM. The maximum value is 128. In AIX Version 3, the number of pbufs may need to be increased in systems doing many large, sequential I/O operations.
-c numclust Specifies the number of 16KB clusters processed by write behind. The default value is 1.
-f minfree Specifies the minimum number of frames on the free list. This number can range from 8 to 204800.
-F maxfree Specifies the number of frames on the free list at which page stealing is to stop. This number can range from 16 to 204800 but must be greater than the number specified by the minfree parameter by at least the value of maxpgahead.
-k npskill Specifies the number of free paging-space pages at which AIX begins killing processes. The default value is 128.
-l lrubucket Specifies the size (in 4K pages) of the least recently used (lru) page-replacement bucket size. This is the number of page frames which will be examined at one time for possible pageouts when a free frame is needed. A lower number will result in lower latency when looking for a free frame, but will also result in behavior that is not as much like a true lru alogorithm. The default value is 512MB and the minimum is 256MB. Tuning this option is not recommended.
-M maxpin Specifies the maximum percentage of real memory that can be pinned. The default value is 80. If this value is changed, the new value should ensure that at least 4MB of real memory will be left unpinned for use by the kernel.
-N pd_npages Specifies the number of pages that should be deleted in one chunk from RAM when a file is deleted. The default value is the largest possible file size divided by the page size (currently 4096). If the largest possible file size is 2GB, then pd_npages is by default 524288. Tuning this option is really only useful for real-time applications.
-p minperm Specifies the point below which file pages are protected from the repage algorithm. This value is a percentage of the total real-memory page frames in the system. The specified value must be greater than or equal to 5.
-P maxperm Specifies the point above which the page stealing algorithm steals only file pages. This value is expressed as a percentage of the total real-memory page frames in the system. The specified value must be greater than or equal to 5.
-r minpgahead Specifies the number of pages with which sequential read-ahead starts. This value can range from 0 through 4096. It should be a power of 2.
-R maxpgahead Specifies the maximum number of pages to be read ahead. This value can range from 0 through 4096. It should be a power of 2 and should be greater than or equal to minpgahead.
-u lvm_bufcnt Specifies the number of LVM buffers for raw physical I/Os. The default value is 9. The possible values can range between 1 and 64. This option is only available in AIX Version 4.
-w npswarn Specifies the number of free paging-space pages at which AIX begins sending the SIGDANGER signal to processes. The default value is 512.
-W maxrandwrt Specifies a threshold (in 4KB pages) for random writes to accumulate in RAM before these pages are sync'd to disk via a write-behind algorithm. This threshold is on a per file basis.

The -W maxrandwrt option is only available in AIX Version 4.1.3 and later. The default value of maxrandwrt is 0, which disables random write-behind.

Related Information

"Performance Overview of the Virtual Memory Manager (VMM)".


[ Previous | Next | Contents | Glossary | Home | Search ]