shmsys:shminfo_shmmni
| Description | System wide limit on
number of shared memory segments that can be created.
| | Data Type | Signed integer
| | Default | 100
| | Range | 0 to MAXINT
| | Dynamic? | No. Loaded into shmmni field of shminfo structure.
| | Validation | The amount of space consumed
by the maximum possible number of data structures to support System V shared
memory is checked against 25% of the currently available kernel memory at
the time the module is loaded. If the memory consumed is too large, the attempt
to load the module fails.
| | When to Change | When the system limits
are too low. Generally changed on the recommendation of software vendors.
| | Commitment Level | Unstable
|
segspt_minfree
| Description | Pages of system memory
that cannot be allocated for ISM shared memory.
| | Data Type | Unsigned long
| | Default | 5% of available system memory
when first ISM segment is created.
| | Range | 0 to 50% of physical memory
| | Units | Pages
| | Dynamic? | Yes
| | Validation | None. Values that are
too small can cause the system to hang or performance to severely degrade
when memory is consumed with ISM segments.
| | When to Change | On database servers
with large amounts of physical memory using ISM, this parameter can be tuned
downward. If ISM segments are not used, this parameter has no effect. A maximum
value of 128 Mbytes (0x4000) is almost certainly sufficient on large memory
machines.
| | Commitment Level | Unstable
|
Scheduling
rechoose_interval
| Description | Number of clock ticks
before a process is deemed to have lost all affinity for the last CPU it ran
on. After this interval expires, any CPU is considered a candidate for scheduling
a thread. This parameter is relevant only for threads in the timesharing class.
Real-time threads are scheduled on the first available CPU.
| | Data Type | Signed integer
| | Default | 3
| | Range | 0 to MAXINT
| | Dynamic? | Yes
| | Validation | None
| | When to Change | When caches are large,
or the system is running a critical process, or a set of processes that seem
to suffer from excessive cache misses not caused by data access patterns.
Consider using the processor set (psrset(1M)) capabilities available as of the Solaris
2.6 release or processor binding (pbind(1M)) before
changing this parameter.
| | Commitment Level | Unstable
|
Timers
hires_tick
| Description | Variable that when set
causes the Solaris environment to use a system clock rate of 1000 instead
of the default value of 100.
| | Data Type | Signed integer
| | Default | 0
| | Range | 0 (disabled) or 1 (enabled)
| | Dynamic? | No. Causes new system timing
variable to be set at boot time. Not referenced after boot.
| | Validation | None
| | When to Change | When you want timeouts
with a resolution of less than 10 milliseconds and greater than or equal to
1 millisecond.
| | Commitment Level | Unstable
|
timer_max
| Description | Number of POSIX timers
available.
| | Data Type | Signed integer
| | Default | 32
| | Range | 0 to MAXINT
| | Dynamic? | No. Increasing value can
cause a system crash.
| | Validation | None
| | When to Change | When default number
of timers offered by system is inadequate. Applications see an EAGAIN error when executing timer_create system calls.
| | Commitment Level | Unstable
|
Sun4u Specific
consistent_coloring
| Description | Starting with the Solaris
2.6 release, the ability to use different page placement policies on the UltraSPARC
(sun4u) platform was introduced. A page placement policy attempts to allocate
physical page addresses to maximize the use of the L2 cache. Whatever algorithm
is chosen as the default algorithm, that algorithm can potentially provide
less optimal results than another algorithm for a particular application set.
This variable changes the placement algorithm selected for all processes on
the system.
Based on the size of the L2 cache, memory is divided into bins. The
page placement code allocates a page from a bin when a page fault first occurs
on an unmapped page. The page chosen depends on which of the three possible
algorithms are used:
Page coloring - Various bits of the virtual address are used
to determine the bin from which the page is selected. This is the default
algorithm in the Solaris 8 release. consistent_coloring
is set to zero to use this algorithm. No per-process history exists for this
algorithm.
Virtual addr=physical address - Consecutive pages in the program
selects pages from consecutive bins. consistent_coloring
is set to 1 to use this algorithm. No per-process history exists for this
algorithm.
Bin-hopping - Consecutive pages in the program generally allocate
pages from every other bin, but the algorithm occasionally skips more bins. consistent_coloring is set to 2 to use this algorithm. Each process
starts at a randomly selected bin and a per-process memory of the last bin
allocated is kept.
| | Dynamic? | Yes
| | Validation | None. Values larger than
2 cause a number of WARNING: AS_2_BIN: bad consistent coloring value messages to appear on the console and the system hangs immediately
thereafter. A power-cycle is required to recover.
| | When to Change | When the primary
workload of the system is a set of long-running high-performance computing
(HPC) application(s). Changing this value might provide better performance.
File servers, database servers, and systems with a number of active processes
(for example, compile or time-sharing servers) will not benefit from changes.
| | Commitment Level | Unstable
|
|