Sun Microsystems Logo
Products and Services
 
Support and Training
 
 

Previous Previous     Contents     Index     Next Next

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

Previous Previous     Contents     Index     Next Next