Sun Microsystems, Inc.
spacerspacer
spacer www.sun.com docs.sun.com |
spacer
black dot
 
 
2.  Solaris Kernel Tunables fsflush and Related Tunables autoup  Previous   Contents   Next 
   
 

dopageflush

Description

Controls whether memory is examined for modified pages during fsflush invocations. In each invocation of fsflush, the number of memory pages in the system is determined (it might have changed because of a dynamic reconfiguration operation). Each invocation scans (total number of pages x tune_t_fsflushr) / autoup pages.

Data Type

Signed integer

Default

1 (enabled)

Range

0 (disabled) or 1 (enabled)

Units

Toggle (on/off)

Dynamic?

Yes

Validation

None

When to Change

If the system page scanner rarely runs, indicated by a value of 0 in the sr column of vmstat output.

Commitment Level

Unstable

doiflush

Description

Controls whether file system metadata syncs will be executed during fsflush invocations. Syncs are done every Nth invocation of fsflush where N= (autoup / tune_t_fsflushr). Because this is an integer division, if tune_t_fsflushr is greater than autoup, a sync will be done on every invocation of fsflush because the code checks to see if its iteration counter is greater than or equal to N. Note that N is computed once on invocation of fsflush. Later changes to tune_t_fsflushr or autoup will have no effect on the frequency of sync operations.

Data Type

Signed integer

Default

1 (enabled)

Range

0 (disabled) or 1 (enabled)

Units

Toggle (on/off)

Dynamic?

Yes

Validation

None

When to Change

When files are frequently modified over a period of time and the load caused by the flushing perturbs system behavior. Files whose existence, and therefore consistency of state does not matter if the system reboots, are better kept in a TMPFS file system (for example, /tmp). Inode traffic can be reduced on systems running the Solaris 7 and 8 releases by using the mount -noatime option. This option eliminates inode updates when the file is accessed.

A system engaged in realtime processing might want to disable this option and use explicit application file syncing to achieve consistency.

Commitment Level

Unstable

Process Sizing Tunables

Several variables are used to control the number of processes that are available on the system and the number of processes that an individual user can create. The foundation variable is maxusers, which drives the values assigned to max_nprocs and maxuprc.

maxusers

Description

Originally, maxusers defined the number of logged in users the system could support. Various tables were sized based on this setting when a kernel was generated. Now, the Solaris release does much of its sizing based on the amount of memory on the system, so much of the past use of maxusers has changed. There are still a number of subsystems that are derived from maxusers:

  • The maximum number of processes on the system

  • The number of quota structures held in the system

  • The size of the directory name lookup cache (DNLC)

Data Type

Signed integer

Default

Lesser of the amount of memory in Mbytes and 2048

Range

1 to 2048, based on physical memory if not set in the /etc/system file.

1 to 4096, if set in the /etc/system file.

Units

Users

Dynamic?

No. After computation of dependent variables is done, maxusers is never referenced again.

Validation

None

When to Change

When the default number of user processes derived by the system is too low. This situation is seen by the following message that displays on the system console:
out of processes

When the default number of processes is too high:

  • Database servers that have a lot of memory and relatively few running processes, can save system memory by reducing the default value of maxusers.

  • File servers that have a lot of memory and few running processes can reduce this value, but should explicitly set the size of the DNLC. (See "ncsize".)

  • Compute servers that have a lot of memory and few running processes can reduce this value.

Commitment Level

Unstable

Change History

For information, see "maxusers (Solaris 7 Release)".

reserved_procs

Description

Specifies number of system process slots to be reserved in the process table for processes with a UID of root (0). For example, fsflush.

Data Type

Signed integer

Default

5

Range

5 to MAXINT

Units

Processes

Dynamic?

No. Not used after the initial parameter computation.

Validation

In the Solaris 8 release, any /etc/system setting is honored.

Commitment Level

Unstable

When to Change

Consider increasing to 10 + normal number of UID 0 (root) processes on system. This setting provides some cushion should it be necessary to obtain a root shell during a time when the system is otherwise unable to create user-level processes.

 
 
 
  Previous   Contents   Next