Solaris Tunable Parameters Reference Manual

Paging Related Tunables

In certain revisions of the Solaris 2.6 kernel patch (105181-10 for SPARC platforms and 105182-09 for Intel platforms) and in the Solaris 7 release, a new parameter is introduced: priority paging. A new starting point for pageout thread activity (cachefree) is also used. When available memory is between cachefree and lotsfree, priority paging modifies the page-checking algorithm to skip the page, if it came from an executable (text, stack, or data). After memory falls below lotsfree, every page is considered equally. The facility is not enabled by default, but can be enabled by either setting cachefree to a value greater than lotsfree or by setting the priority_paging variable to a non-zero value, which sets cachefree to 2 times lotsfree.

cachefree (Solaris 8 Releases)

Description

The Solaris 8 release changes the way file system pages are cached. These changes subsume the priority paging capability.


Note –

Remove both cachefree and priority_paging settings in the /etc/system file.


The caching changes remove most of the pressure on the virtual memory system resulting from file system activity. Several statistics exhibit new behavior:

  • Page reclaims are higher because pages are now explicitly added to the free list after I/O completes.

  • Free memory is now higher because the free memory count now includes a large component of the file cache.

  • Scan rates are drastically reduced.

Commitment Level

Obsolete

Change History

See cachefree (Solaris 2.6 and Solaris 7 Releases) for more information.

cachefree (Solaris 2.6 and Solaris 7 Releases)

Description

Enables priority paging feature, provided cachefree is greater than lotsfree. This variable is available for systems running the Solaris 2.6 release, with at a minimum, revision 10 of patch 105181 installed, and for systems running the Solaris 7 release. By default, this feature (cachefree equals lotsfree) is disabled.

Data Type

Unsigned long

Default

Value of lotsfree unless priority_paging is set, which means cachefree is 2 times lotsfree

Range

lotsfree to physical memory on system

Units

Pages

Dynamic?

Yes

Validation

If less than lotsfree, it is reset to the value of lotsfree.

When to Change

Should always be enabled unless the system is tight on memory, and does excessive I/O where the contents of the files are needed in the future.

Commitment Level

Obsolete

priority_paging (Solaris 8 Releases)

Description

This variable sets cachefree to 2 times lotsfree.

The Solaris 8 release changes the way file system pages are cached. These changes subsume the priority paging capability.


Note –

Remove both cachefree and priority_paging settings in the /etc/system file.


Commitment Level

Obsolete

Change History

See priority_paging (Solaris 2.6 and 7 Releases) for more information.

priority_paging (Solaris 2.6 and 7 Releases)

Description

Enables priority paging feature. When set, this variable sets cachefree to 2 times lotsfree, thereby enabling priority paging.

Data Type

Signed integer

Default

0

Range

0 (priority paging disabled unless cachefree set separately) or 1 (enabled)

Units

Toggle (on/off)

Dynamic?

No. Sets the value of cachefree at boot time only. Runtime enabling can be achieved by setting cachefree with mdb while the system is running.

Validation

None

When to Change

Should always be enabled unless the system is tight on memory, and does excessive I/O where the contents of the files are needed in the future.

Commitment Level

Obsolete

tmpfs:tmpfs_minfree

Description

Minimum amount of swap space that TMPFS leaves for the rest of the system.

Data Type

Signed long

Default

256

Range

0 to maximum swap space size

Units

Bytes

Dynamic?

Yes

Validation

None

When to Change

To maintain a reasonable amount of swap space on systems with large amounts of TMPFS usage, you can increase this number. The limit has been reached when the console or system messages file displays the following message.


fs-name: File system full, swap space limit exceeded
Commitment Level

Unstable

pages_pp_maximum (Pre-Solaris 9 Releases)

Description

Defines the number of pages that the system requires be unlocked. If a request to lock pages would force available memory below this value, that request is refused.

Data Type

Unsigned long

Default

Maximum of the triplet (200, tune_t_minarmem + 100, [10% of memory available at boot time])

Range

Default value to no more than 20% of physical memory. The systems does no enforcement of this range other than that described in the Validation section.

Units

Pages

Dynamic?

Yes, unless dynamic reconfiguration operations that add or delete memory occur. At that point, the value is reset to whatever was provided in the /etc/system file or was calculated.

Validation

Maximum of the quadruplet (200, tune_t_minarmem + 100, [10% of memory available], and the value from /etc/system). No message is displayed if the value from /etc/system is increased. Done only at boot time.

When to Change

When memory locking requests or attaching to a shared memory segment with the SHARE_MMU flag fails, yet the amount of memory available seems to be sufficient. Keeping 10% of memory free on a 32-Gbyte system might be excessive.

Excessively large values can cause memory locking requests to fail unnecessarily.

Commitment Level

Unstable