 |
Index for Section 5 |
|
 |
Alphabetical listing for S |
|
sys_attrs(5)
NAME
sys_attrs, sys_attrs_cm, sys_attrs_generic, sys_attrs_ipc, sys_attrs_proc,
sys_attrs_vfs, sys_attrs_vm - introduction to kernel subsystem attributes
used for configuration and tuning and descriptions of attributes for
required subsystems
DESCRIPTION
The operating system kernel is built from many mandatory and optional
subsystems. If you are logged into the root account, the following command
lists the subsystems included in the kernel for your system:
# /sbin/sysconfig -s
The majority of the kernel subsystems have sets of attributes whose values
control different aspects of subsystem configuration. You can examine the
names, the current settings, and (if applicable) the minimum, and maximum
settings of attributes for a particular subsystem by entering the command
/sbin/sysconfig -Q subsystem-name or by using the dxkerneltuner application
in the Common Desktop Environment (CDE).
Caution
A relatively small number of the attributes listed in displays from
these interfaces should actually be changed through these same
interfaces and then only as part of the system configuration and
tuning tasks done by an experienced system or network administrator.
The settings of most subsystem attributes should be done indirectly
through system and network setup applications or scripts. This fact is
very important to remember because attribute settings can have complex
interrelationships with one another, requiring (in some cases) careful
manipulation of an entire set of attributes rather than only one.
Furthermore, default settings of some subsystem attributes should
never be touched, except by Compaq support personnel or by an
administrator acting on instructions from support personnel or patch
kit documentation.
Some attributes have corresponding parameters in the system configuration
file. If so, the corresponding parameter name in the system configuration
file is specified in parentheses following the attribute name. In these
cases, never edit the system configuration file to directly change the
value of the system parameter; use the dxkerneltuner application or the
/sbin/sysconfig -r command to change the value of the attribute. For some
subsystems, these values are best applied through a stanza-formatted file
that is specified as a parameter to the sysconfigdb command. See
dxkerneltuner(8X), sysconfig(8), and sysconfigdb(8) for more information
about your options for configuring kernel subsystems.
This reference page lists and describes attributes for subsystems that must
be included when the kernel is built. These subsystems include the
following ones:
· Configuration Manager (cm)
· Generic Kernel (generic)
· Interprocess Communication (ipc)
· Process (proc)
· Virtual File System (vfs)
· Virtual Memory (vm)
A kernel also includes a processor-specific subsystem whose name is an
internal code for a particular processor. Processor-specific subsystems
typically have no attributes, are not modified directly by users, and are
not documented.
Other kernel subsystems are technically optional, although a kernel almost
always includes quite a few optional subsystems in order for a system to be
useful. For information on the attributes for kernel subsystems that are
technically optional, refer to the system attributes reference pages for
particular subsystems. The names of these reference pages adhere to the
format sys_attrs_subsystem-name. For example, the reference page that lists
and describes attributes for the pci subsystem is named sys_attrs_pci(5).
For guidelines on changing kernel subsystem attributes to improve system
performance, see the System Configuration and Tuning manual. Any discussion
about changing attributes for reasons other than tuning is located in the
administration manual that discusses that subsystem.
Some subsystem attributes can be changed at run time. If so, the attribute
descriptions in the following subsections mention that fact. To make it
easy for you to locate these attributes when scanning lists, an asterisk
(*) also precedes the names of these attributes.
cm Subsystem Attributes
max_callbacks
The maximum number of registered callbacks that are allowed by the
kernel at any point in time. If exceeded, register_callback() (a
function used only by kernel components, such as device drivers)
receives an error message.
Default value: 341 (callbacks)
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit instructions.
generic Subsystem Attributes
binlog-buffer-size
The kernel buffer size in bytes.
Default value: If the binlog-buffer-size is not explicitly specified,
the value for kernel buffer size is assigned at boot time and is based
on the amount of physical memory installed on the system. The value
assigned automatically ranges from 32 kilobytes to 1 megabyte.
Minimum value: 8192 (bytes, or 8 KB)
Maximum value: 1048576 (bytes, or 1 MB)
booted_args
The arguments passed from osf_boot to the kernel.
booted_kernel
The name of the kernel that was loaded by osf_boot.
clock-frequency
The number of clock interrupts per second. This value is platform
dependent and can only be queried.
cpu-enable-mask (cpu_enable_mask)
A value for the bit mask that determines which CPUs can be started in a
multi-CPU system. The lowest order bit (bit 0) in this mask corresponds
to CPU0. The next highest order bit corresponds to CPU1, and so on, up
to bit 63. The bits in these positions can be set to 0 (disabled) or 1
(enabled) for the corresponding CPU slots. The decimal or hexidecimal
value specified for cpu_enable_mask corresponds to the binary value
that has 0 and 1 in the correct ordinal positions for the CPUs you want
to enable or disable.
Default value: 18446744073709551615 (same as -1)
Minimum value: 0
Maximum value: 18446744073709551615 (same as -1)
Specifying -1 for this attribute means that all CPUs present in the
system are allowed to be started by the master CPU. Specifying 0 for
this attribute enables uniprocessor operation in a multi-CPU system.
Other values enable and disable specific CPUs, depending on what the
system supports.
The following table illustrates the relationships between bit settings
and cpu_enable_mask values for enabling a single CPU. It is generally
easier to determine and enter hexidecimal values, so only a few
significant decimal equivalents are shown:
Dec. Hex Single
Bit 63... 8 7 6 5 4 3 2 1 0 Value Value CPU Enabled
__________________________________________________________________________
0 ... 0 0 0 0 0 0 0 0 0 0 0 Special meaning *
0 ... 0 0 0 0 0 0 0 0 1 1 0x1 CPU0
0 ... 0 0 0 0 0 0 0 1 0 0x2 CPU1
0 ... 0 0 0 0 0 0 1 0 0 0x4 CPU2
0 ... 0 0 0 0 0 1 0 0 0 0x8 CPU3
0 ... 0 0 0 0 1 0 0 0 0 0x10 CPU4
0 ... 0 0 0 1 0 0 0 0 0 0x20 CPU5
0 ... 0 0 1 0 0 0 0 0 0 0x40 CPU6
0 ... 0 1 0 0 0 0 0 0 0 0x80 CPU7
0 ... 1 0 0 0 0 0 0 0 0 0x100 CPU8
.
.
.
1 ... 0 0 0 0 0 0 0 0 0 0x8000000000000000 CPU63
* The minimum value (0) indicates that only the master (boot) CPU be
enabled. This value is useful if you want to test applications in a
uniprocessor environment and your test system normally runs in
multiprocessor mode.
Note
Most systems require that the master CPU be CPU0. For these systems,
0 and 1 are equivalent values and are the only values you should
specify for uniprocessor operation. Keep in mind that the kernel
determines which CPU is the master CPU on these systems and will
overwrite values specified for cpu_enable_mask that are incompatible
with having CPU0 as the master CPU.
The following table illustrates the relationships between bit settings
and cpu_enable_mask values for enabling sample combinations of CPUs:
Dec. Hex Multiple
Bit 63... 8 7 6 5 4 3 2 1 0 Value Value CPUs Enabled
_____________________________________________________________________________
0 ... 0 0 0 0 0 0 0 1 1 0x3 CPU0, CPU1
0 ... 0 0 0 0 0 0 1 0 1 0x5 CPU0, CPU2
0 ... 0 0 0 0 0 0 1 1 0 0x6 CPU1, CPU2
0 ... 0 0 0 0 0 0 1 1 1 0x7 CPU0, CPU1, CPU2
.
0 ... 0 0 0 0 0 1 1 1 1 0xf CPU0 to CPU3
.
0 ... 0 0 0 0 1 1 1 1 1 0x1f CPU0 to CPU4
.
0 ... 0 0 0 1 1 1 1 1 1 0x3f CPU0 to CPU5
.
0 ... 0 0 1 1 1 1 1 1 1 0x7f CPU0 to CPU6
.
0 ... 0 1 1 1 1 1 1 1 1 0xff CPU0 to CPU7
.
0 ... 1 1 1 1 1 1 1 1 1 0x1ff CPU0 to CPU8
.
.
.
1 ... 1 1 1 1 1 1 1 1 1 -1 0xffffffffffffffff All available CPUs *
* The maximum value specifies 1 in all bit positions, thereby enabling
all available CPUs. This value corresponds to 18446744073709551615 or
-1 in decimal notation or 0xffffffffffffffff in hexidecimal notation.
You can enable and disable specific combinations of CPUs by entering
values that set and clear appropriate bit positions in the bit mask. If
you suspect that one of the CPUs on a multiprocessor system may be the
cause of a system problem, you can try running the system with
different combinations of available CPUs disabled to help confirm your
suspicion. Remember that if your system is one of those that require
CPU0 to be the master CPU, the kernel does not apply values that map to
0 in bit position 0. In this case, you have to switch another CPU into
slot 0 before you can do a test run that disables the CPU originally in
slot 0.
Certain lockmode attribute values override incompatible cpu_enable_mask
settings. If the value of the lockmode attribute is 0 or 1, all bits in
the cpu_enable_mask bit mask that do not correspond to the master CPU
are set to 0.
dump-sp-threshold
A threshold size that determines whether single-partition or multiple-
partition dumps are created. If a dump will fit on the primary swap
partition and leave space that is equal to this threshold value, the
dump is created as a single-volume dump on the primary swap partition,
even if secondary swap partitions are available. (See the Kernel
Debugging manual for details.)
Default value: 4096
kmem_debug
An interactive boot flag that is used for diagnostic purposes only.
If enabled (1), each time the kernel memory allocator allocates or
deallocates memory in the kernel memory pool, the system checks whether
the operation is performed correctly. If the kernel memory pool is in a
corrupt state, the system crashes and provides useful debugging
information.
lite-system
A setting that enables (1) or disables (0) a set of attribute values
that improve performance for 32-MB systems.
Default value: 1 if memory size is less than or equal to 32 MB and 0 if
memory size is greater than 32 MB
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
lockdebug (lockdebug)
A value that enables (1) or disables (0) lock debugging. If enabled
(1), the default value for the lockmode attribute is set to 4.
If you explicitly specify a value for the lockmode attribute, that
value also causes lockdebug to be set or reset (overridden). For
example, if you set lockmodeto be 0, 1, 2, or 3, the value of lockdebug
will be 0. If you set lockmode to be 4, the value of lockdebug will be
1.
Default value: 0 (disabled)
lockmaxcycles
Used for internal debugging.
Default value: 0
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
lockmode (lockmode)
The mode in which the simple lock primitive package is used within the
kernel. Mode settings support different combinations of real-time (RT)
kernel preemption, symmetric multiprocessing (SMP), and lock debugging
with lock statistics:
0 Neither RT nor SMP is required. In this case, the calls to the
simple lock primitives are patched out completely.
1 Only RT is required. In this case, the simple lock operations
maintain a "preemption blocking" count.
2 Only SMP is required. In this case, the lock operations provide
synchronization among multiple CPUs.
3 Both RT and SMP are required. In this case, lock operations are
performed as described for both mode 1 and 2.
4 Both RT and SMP are required. In this case, lock operations are
as described for mode 3, with the addition of kernel lock
debugging and statistics.
Default value: Assigned at boot time, depending on the values for the
rt_preempt_opt, cpu_enable_mask, and lockdebug attributes, and on
whether multiple CPUs are able to be booted.
If you specify a value for lockmode (0-4), your setting both overrides
the default setting and disables any of the three related capabilities
that cannot be supported by the chosen set of simple lock primitives.
For example, setting lockmode to 0, 1, 2, or 3 disables kernel lock
debugging and statistics, whether or not the lockdebug attribute was
originally set to 1 (to enable kernel lock debugging and statistics).
locktimeout (locktimeout)
The number of seconds that a CPU will wait (spin) on a simple lock. If
a CPU cannot acquire a simple lock in the specified amount of time, a
fatal error occurs, and the system panics and issues a
"simple_lock:time limit exceeded" message.
Default value: 15 (seconds)
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit instructions. A 0 value might cause boot failures on a
multiprocessor system. Values larger than the default might hang the
system instead of causing it to panic and reboot.
max-lock-per-thread
The depth to which complex locks can be nested for a thread at one
time. The value of max-lock-per-thread is used for debugging (when
lockmode=4).
Default value: 16
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
message-buffer-size msgbuf_size
The size of the message buffer that is used to store boot log messages.
Default value: 4096
old_obreak
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
Default value: 1 (on)
physio_max_coalescing
A value that controls how I/O requests are gathered when readv or
writev operations are directed at a character device (not a block
device). For example, when set to 65536, eight 8-KB buffers coalesce
into one 64-KB buffer. This improves the efficiency of database
operations.
Default value: 65536
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
rt-preempt-opt (rt_preempt_opt)
A value that enables (1) or disables (0) real-time kernel preemption.
Default value: 0 (disabled)
If real-time kernel preemption is enabled (1), the default value for
lockmode will be 1 on a single-CPU system or 3 on a multi-CPU system.
However, if you explicitly specify certain lockmode values, you
implicitly override the rt-preempt-opt value. For example, if you set
lockmode to 0 or 2, you implicitly set rt-preempt-opt to 0, disabling
real-time kernel preemption.
user_cfg_pt
The CFG run-time points that are configurable from user mode. Setting
this attribute to a particular value triggers kernel callbacks that
have been registered for the point corresponding to that value.
Default value: 0 (callbacks disabled)
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
ipc Subsystem Attributes
max-kernel-ports (port_max_num)
The maximum number of kernel IPC ports that can be used on the system
at one time.
Default value: (task-max * 3 + thread-max) + (thread-max * 2) + 2000
(Values of variables used to establish default value: task-max = nproc
+1; thread-max = nproc *2; nproc = 20 + 8 * maxusers)
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
msg-max (msgmax)
Maximum size, in bytes, of a single System V message.
Default value: 8192 (bytes, which equal 1 page)
Minimum value: 0
Maximum value: INT_MAX
Values for this attribute are restricted by the amount of main memory
on the system. The minimum value (0) disables the messaging system.
msg-mnb (msgmnb)
Maximum number of bytes that can be queued to a single System V message
queue.
Default value: 16384 (bytes, which equal 2 pages)
Minimum value: 0
Maximum value: INT_MAX
Values for this attribute are restricted by the amount of main memory
on the system. The minimum value (0) disables the messaging system.
msg-mni (msgmni)
Maximum number of System V message queues that can be used on the
system at one time.
Default value: 50 (queues) The system rounds the number to the value
associated with the next higher power of two; for example, 64.
Minimum value: 0
Maximum value: INT_MAX
Values for this attribute are restricted by the amount of main memory
on the system. The minimum value (0) disables the messaging system.
msg-tql (msgtql)
Maximum number of messages that can be queued to a single System V
message queue at one time.
Default value: 40 (messages)
Minimum value: 0
Maximum value: INT_MAX
Values for this attribute are restricted by the amount of main memory
on the system. The minimum value (0) disables the messaging system.
num-of-sems (num_of_sems)
Obsolete. Not used.
port-hash-max-num (port_hash_max_num)
Number of port hash buckets that the kernel uses to manage the kernel
ports.
Default value: 50 * max-kernel-ports
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
port-reserved-max-num (port_reserved_max_num)
Maximum number of ports that can be reserved by the kernel.
Default value: max-kernel-ports
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
sem-aem (semaem)
A value that controls the maximum adjustment that can be made to any
System V semaphore when a process exits.
Default value: 16384
Minimum value: 0
Maximum value: 65536
sem-mni (semmni)
Maximum number of System V semaphores that can be used on the system at
one time.
Default value: 10 (semaphores) (The system rounds the number to the
value associated with the next higher power of two; for example, 16.)
Minimum value: 0
Maximum value: INT_MAX
sem-msl (semmsl)
Maximum number of System V semaphores that can be used by a single
process at one time.
Default value: 25 (semaphores)
Minimum value: 0
Maximum value: INT_MAX
sem-opm (semopm)
Maximum number of operations that can be outstanding on a single System
V semaphore at one time.
Default value: 10 (operations)
Minimum value: 0
Maximum value: INT_MAX
sem-ume (semume)
Maximum number of undo operations that can be outstanding on a single
System V semaphore at one time.
Default value: 10 (operations)
Minimum value: 0
Maximum value: INT_MAX
sem-vmx (semvmx)
Maximum integer value that any System V semaphore can contain.
Default value: 32767
Minimum value: 0
Maximum value: INT_MAX, but do not enter values higher than 65535
set-max-num (set_max_num)
Maximum number of port sets that can be used by the kernel at one time.
Default value: task-max + thread-max + 200
(Values of variables used to establish default value: task-max = nproc
+1; thread-max = nproc *2; nproc = 20 + 8 * maxusers)
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
shm-max (shmmax)
Maximum size, in bytes, of a single System V shared memory region.
Default value: 4194304 (bytes) (This value equals 512 pages)
shm-min (shmmin)
Minimum size, in bytes, of a single System V shared memory region.
Default value: 1 (All requests are rounded to the next page size.)
shm-mni (shmmni)
Maximum number of shared memory regions that can be used on the system
at one time.
Default value: 100 (regions) (The system rounds the number to the value
associated with the next higher power of two; for example, 128.)
shm-seg (shmseg)
Maximum number of System V shared memory regions that can be attached
to a single process at one time.
Default value: 32 (regions)
* ssm-enable-core-dump (ssm_enable_core_dump)
If enabled (1), writes segmented shared memory contents when an
application issues a core dump. If disabled (0), segmented shared
memory is not written to the core dump.
Default value: 1 (enabled)
Because segmented shared memory can be large, the amount of time
needed to dump the region to a core file and the amount of file system
space required by the operation can be extensive, especially in large
database environments. Therefore, although shared memory can be useful
for debugging, you may not want to include it in core files because of
time and resource limitations.
This attribute can be modified at run time.
* ssm-threshold (ssm_threshold)
The minimum size, in bytes, of a System V shared region for the use of
shared page tables. Setting this value to 0 disables the use of
shared page tables for shared memory. The size must be at least equal
to the value of SSM_SIZE, which is defined in the machine/pmap.h file
(the default is 8 MB).
This attribute can be modified at run time.
Default value: SSM_SIZE
Minimum value: SSM_SIZE
proc Subsystem Attributes
autonice (autonice)
A value that enables (1) or disables (0) the ability of applications
that use more than 600 seconds of CPU time to automatically increase
their nice values (that is, lower their scheduling priorities).
Default value: 0 (disabled)
autonice-penalty
The nice value that is assigned to a process after it has used an
amount of CPU time that exceeds the value of the autonice-time
attribute.
Default value: 4
Minimum value: 0
Maximum value: 20
autonice-time
The amount of CPU time, in seconds, that a process can use before it is
assigned the nice value that is specified by the autonice-penalty
attribute.
Default value: 600 (seconds)
Minimum value: 0
Maximum value: 86400
enhanced-core-max-versions
The maximum number of unique core files that a program can create on a
host system.
Default value: 16 (files)
Minimum value: 1
Maximum value: 99,999
enhanced-core-name
A value that enables (1) or disables (0) creation of multiple versions
of core files. If this attribute is set to 0, an existing core file
will be overwritten when a new one is created.
Default value: 0 (disabled)
give-boost (give_boost)
A value that enables (1) or disables (0) booting the priority of
processes that have recently awakened from a block I/O operation.
Setting this attribute to 1 reduces I/O latency and may make the system
more responsive.
Default value: 1 (enabled)
max-per-proc-address-space (vm_initial_limit_vas.rlim_max)
Maximum amount, in bytes, of user process address space.
Default value: 107374182 (bytes) (1 GB)
Minimum value: 0
Maximum value: 4398046511104
max-per-proc-data-size (vm_initial_limit_data.rlim_max)
Maximum size, in bytes, of a data segment for each process.
Default value: 107374182 (bytes) (1 GB)
max-per-proc-stack-size (vm_initial_limit_stack.rlim_max)
Maximum size, in bytes, of a user process stack.
Default value: 33554432 (bytes)
Minimum value: 0
Maximum value: 4398046511104
max-proc-per-user (maxuprc)
Maximum number of processes (tasks) that a user can create. (The
superuser is not affected.)
Default value: 64 (processes)
Minimum value: 0
Maximum value: 32768
If you specify 0 for this attribute, the system does not check how many
processes a user creates.
max-threads-per-user (maxuthreads)
Maximum limit of threads a user can create. (The superuser is not
affected.)
Default value: 256 (threads)
Minimum value: 0
Maximum value: LONG_MAX
If you specify 0 for this attribute, the system does not check how many
threads a user creates.
maxusers (maxusers)
Number of simultaneous users that a system can support without
straining system resources. System algorithms use the maxusers keyword
to size various system data structures and to determine the amount of
space allocated to system tables, such as the system process table.
Default value: System dependent
Minimum value: 8
Maximum value: 4096
Increasing the value of the maxusers attribute allocates more system
resources to the kernel. However, it also increases the amount of
physical memory consumed by the kernel. Changing the value of the
maxusers attribute affects the values of other attributes, including
the taskmax, threadmax, and min-free-vnodes attributes.
ncallout (ncallout)
Obsolete. Not used.
ncallout_alloc_size
Minimum amount of memory that can be used for timeout tables. The
value of this attribute is automatically adjusted.
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
num-timeout-hash-queues
The number of callout tables. This number determines the size of the
hash table for timeout queues.
Default value: The number of process slots divided by 32
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
num-wait-queues
The size of the hash table for the wait queue.
Default value: The number of process slots divided by 32
Minimum value: 64
Maximum value: 16384
open-max-hard (open_max_hard)
Hard limit for the number of file descriptors for each process.
Default value: 4096 (file descriptors)
Minimum value: 0
Maximum value: 65536
If the number of file descriptors reaches the value of the open-max-
hard attribute or higher, the process is stopped. Use the
getdtablesize() system call to obtain the total number of file
descriptors in a process' descriptor table.
open-max-soft (open_max_soft)
The soft limit for the number of file descriptors for a process.
Default value: 4096 (file descriptors)
Minimum value: 0
Maximum value: 65536
When the open-max-soft limit is reached, a warning message is issued.
Use the getdtablesize() system call to obtain the total number of file
descriptors in a process' descriptor table. A process can increase its
soft limit up to its hard limit (open-max-hard) by using the
setrlimit() system call.
per-proc-address-space (vm_initial_limit_vas.rlim_cur)
The maximum amount, in bytes, of user process address space.
Default value: 107374182 (bytes) (1 GB)
Minimum value: 0
Maximum value: 4398046511104
per-proc-data-size (vm_initial_limit_data.rlim_cur)
Current maximum size of a data segment for each process.
Default value: 134217728
Minimum value: 0
Maximum value: 4398046511104
per-proc-stack-size (vm_initial_limit_stack.rlim_cur)
The maximum size of a user process stack.
Default value: 2097152
Minimum value: 0
Maximum value: 4398046511104
round-robin-switch-rate (round_robin_switch_rate)
The number of context switches per second that can occur between
processes with the same priority. The lower the number, the less the
system timeslices; the higher the number, the more the system
timeslices.
Default value:
Minimum value: 0
Maximum value: 1024
sched-min-idle (sched_min_idle)
Time, in clock ticks, that a thread must remain idle on a
multiprocessor system before it is eligible to migrate to another
processor.
Default value: 0 (clock ticks)
Minimum value: 0
Maximum value: INT_MAX
This attribute is used to tune the soft affinity algorithm on
multiprocessor systems. Soft affinity enables a process to stay where
it last ran, and thereby optimize its use of any data or instructions
that it had brought into cache memory. The sched-min-idle attribute is
used only on multiprocessor systems; it has no effect on single-CPU
systems.
task-max (taskmax)
Maximum number of tasks that can run simultaneously on the system.
Default value: 20 + 8 * maxusers
Minimum value: 85
Maximum value: 32769
thread-max (threadmax)
Maximum number of kernel threads that can run simultaneously on the
system.
Default value: 2 * task-max
Minimum value: 160
Maximum value: 262144
vfs Subsystem Attributes
bufcache (bufcache)
Percentage of memory that the kernel wires for the metadata buffer
cache.
Default value: 3 (percent) for 32-MB or larger systems; 2 (percent) for
24-MB systems
Minimum value: 0
Maximum value: 50
Increasing the value of the bufcache attribute can improve I/O
performance by providing more memory for caching UFS file system data.
Decreasing the value of the bufcache attribute can free memory
resources. For systems that cache only AdvFS file system data, you may
want to decrease the value to 1.
buffer-hash-size (bufhsz)
Size, in slots, of the hash chain table for the metadata buffer cache.
The hash chain table is used to store the heads of the hashed buffer
queues.
Default value: 512 (slots)
Minimum value: 0
Maximum value: 2147483647
A large hash chain table distributes the buffers and may make chain
lengths short. Increasing the size of the hash chain table can reduce
linear searches and improve lookup speed.
fifo-do-adaptive
A value that enables (1) or disables (0) the pipe code that attempts to
batch writes to a pipe and deliver the data in a single call to a
reader.
Default value: 1 (enabled)
* max-free-file-structures (max_free_files)
Maximum number of file structures on the free list. When the number of
free file structures that are chained for reuse on the free list
reaches the value of the max_free_files attribute, file structure
deallocation begins.
Default value: 0 (file structures)
Minimum value: 0
Maximum value: 2147483647
You can modify this attribute at run time.
* max-ufs-mounts (max_ufsmounts)
Maximum number of UFS or MFS file system mounts. You can increase the
value of the max-ufs-mounts attribute if you want to mount more than
the default number of UFS or MFS file systems. This attribute does not
affect performance.
Default value: 1000
Minimum value: 0
Maximum value: (No limit)
You can modify this attribute at run time.
* max-vnodes (max_vnodes)
Maximum number of vnodes (open files) on a system.
Default value: 1000 (for 24-MB systems); the maximum value (for 32-MB
or larger systems)
Minimum value: Specified by the nvnode attribute
Maximum value: The number of vnodes that 5 percent of the available
memory can contain
Increasing the value of the max-vnodes attribute allows more vnodes on
a system, which may improve performance if your applications or users
create a large number of open files. However, supporting more vnodes
uses additional memory.
You can modify this attribute at run time.
* min-free-vnodes (min_free_vnodes)
Minimum number of free vnodes on the free list. If the number of
vnodes on the free list is less than the value of the min-free-vnodes
attribute, vnodes are deallocated.
Default value: nvnode attribute (for 32-MB or larger systems); 150 (for
24-MB systems)
Minimum value: 0
Maximum value: 2147483647
Increasing the value causes the system to cache more free vnodes and
may improve performance for vnode cache lookup operations. However, a
large value increases the demand for memory.
You can modify this attribute at run time.
name-cache-hash-size (nchsz)
Size, in slots, of the hash chain table for the namei cache.
Default value: 256 slots
Minimum value: 0
Maximum value: name-cache-size/2
Large hash chain tables distribute the namei cache elements and may
make chain lengths short, which can reduce linear searches and improve
lookup speeds. In general, chains should contain only 2 or 3
elements.
name-cache-size (nchsize)
Number of elements in the namei cache.
Default value: 2*nvnode*11/10 (for 32-MB or larger systems); 150 (for
24-MB systems)
Minimum value: 0
Maximum value: 2*max-vnodes*11/10
Increasing the value of the name-cache-size attribute may improve
lookup speeds, but it requires more memory. Decreasing the value can
free memory.
namei-cache-valid-time (ncache_valid_time)
Amount of time, in seconds, that a namei cache entry can remain in the
cache before it is discarded.
Default value: 1200 (seconds) for 32-MB or larger systems; 30 (seconds)
for 24-MB systems
Minimum value: 0
Maximum value: 2147483647
A large namei-cache-valid-time attribute value will retain more vnodes
references in the namei cache and improve the namei cache lookup
speed; however, it will require more memory resources. A small value
may cause premature deallocation of vnodes and decrease the namei cache
lookup speed.
noadd-exec-access
A value that allows you to configure your system so that new
executables cannot be created. This is a security feature and does not
affect performance.
Default value: 0
Minimum value: 0
Maximum value: 4294967295
nvnode (nvnode)
Obsolete. Retained only for compatibility purposes. Determines the
maximum and the minimum number of vnodes on a system. If you modify
the value of the nvnode attribute and then reboot the system, the
lockfile zone size and the specinfo_zone size allocation are also
modified.
Default value: nproc+(2*maxusers)+128
Minimum value: 0
Maximum value: 2147483647
path-num-max (path_num_max)
Size, in number of zone elements, of the pathname zone for pathname
lookup buffers. Increasing the value of path-num-max increases the
number of elements in the zone that is allocated for pathnames.
Default value: 64 (zone elements)
Minimum value: 0
Maximum value: 2147483647
pipe-databuf-size
Number of data bytes in each pipe data buffer.
Default value: 8192 (bytes)
pipe-max-bytes-all-pipes
Maximum number of bytes reserved for all pipes.
Default value: 819200 (bytes)
Minimum value: 819200
Maximum value: 2147483647
pipe-maxbuf-siz
Maximum number of bytes buffered per pipe.
Default value: 65536 (bytes, or 64 KB)
Minimum value: 4096
Maximum value: 262144
pipe-single-write-max
Maximum size of a single write to a pipe.
Default value: -1
special-vnode-alias-tbl-size (spechsz)
Size of the special vnodes alias table for vnodes of special device
files, such as character-I/O or block-I/O device files.
Default value: 64
Minimum value: 0
Maximum value: 2147483647
Increasing the size of the special vnodes alias table allows you to
create more special device files.
sys-v-mode (sys_v_mode)
Obsolete System V attribute.
ucred-max (ucred_max)
Obsolete.
* vnode-age (vnode_age)
Amount of time, in seconds, that a vnode can remain on the free list
before it is deallocated.
Default value: 120 (seconds) for 32-MB or larger systems; 2 (seconds)
for 24-MB systems
Minimum value: 0
Maximum value: 2147483647
You can increase the value of the vnode-age attribute to keep vnodes on
the free list longer, which increases the possibility that the vnode
will be successfully looked up.
You can modify this attribute at run time.
vnode-deallocation-enable
A value that enables (1) or disables (0) vnode deallocation.
Default value: 1 (enabled)
Enabling vnode deallocation decreases memory usage because it returns
to the system the memory allocated to vnodes.
vm Subsystem Attributes
dump-user-pte-pages
A value that enables (1) or disables (0) writing pages from the user
page table to a crash dump.
Default value: 0 (disabled)
Setting this attribute to 1 provides more debugging information when a
system crashes.
gh-chunks
Number of 4-MB chunks of memory reserved at boot time for shared memory
use.
gh-fail-if-no-mem
A value that enables (1) or disables (0) a failure return by the shmget
function under certain conditions. When this attribute is set to 1, the
shmget function returns a failure if the requested segment size is
larger than the value of the gh-min-seg-size attribute and if there is
insufficient memory allocated by the gh-chunks attribute to satisfy
the request.
Default value: 1 (enabled)
gh-min-seg-size
Size, in megabytes, of the segment in which shared memory is allocated
from the memory reserved for shared memory, according to the value of
the gh-chunks attribute.
Default value: 8 (MB)
kernel-stack-guard-pages
A value that enables (1) or disables (0) separation of kernel stacks by
unmapped guard pages. Guard pages are debugging aids that help isolate
kernel stack corruption bugs caused by either overflowing or
underflowing the kernel stack.
Default value: 1 (enabled)
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
malloc-percpu-cache
A value that enables (1) or disables (0) caching of malloc memory on a
per CPU basis.
Default value: 1
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
new-wire-method
Default value: 1 (on)
Do not modify the default setting for this attribute unless instructed
to do so by Compaq Computer Corporation support personnel or by patch
kit documentation.
private-cache-percent
Percentage of the secondary cache that is reserved for anonymous
(nonshared) memory. Increasing the cache for anonymous memory reduces
the cache space available for file-backed memory (shared).
Default value: 50 (percent)
ubc-borrowpercent (ubc_borrowpercent)
Percentage of memory above which the UBC is only borrowing memory from
the virtual memory subsystem. Paging does not occur until the UBC has
returned all its borrowed pages.
Default value: 20 (percent)
ubc-maxdirtywrites
Number of I/O operations (per second) that the virtual memory subsystem
performs when the number of dirty (modified) pages in the UBC exceeds
the value of the vm-ubcdirtypercent attribute.
Default value: 5 (operations per second)
ubc-maxpercent (ubc_maxpercent)
Maximum percentage of physical memory that the UBC can use at one time.
Default value: 100 (percent)
ubc-minpercent (ubc_minpercent)
Minimum percentage of physical memory that the UBC can use.
Default value: 10 (percent)
vm-aggressive-swap
A value that enables (1) or disables (0) the ability of the task
swapper to aggressively swap out idle tasks.
Default value: 0 (disabled)
Setting this attribute to 1 helps prevent a low-memory condition from
occurring and allows more jobs to be run simultaneously. However,
interactive response times are likely to be longer on a system that is
excessively paging and swapping.
vm-asyncswapbuffers (asyncswapbuffers)
The number of asynchronous I/O requests per swap partition that can be
outstanding at one time. Asynchronous swap requests are used for
pageout operations and for prewriting modified pages.
Default value: 4
vm-clustermap(clustermap)
Size, in bytes, of the kernel cluster submap, which is used to allocate
the scatter/gather map for clustered file and swap I/O.
Default value: 1048576 (bytes) (1 MB)
vm-clustersize (clustersize)
Maximum size, in bytes, of a single scatter/gather map for a clustered
I/O request.
Default value: 65536 (bytes) (64 KB)
vm-cowfaults (cowfaults)
Number of times that the pages of an anonymous object are copy-on-write
faulted after a fork operation but before they are copied as part of
the fork operation.
Default value: 4 (faults)
vm-csubmapsize (csubmapsize)
Size, in bytes, of the kernel copy submap.
Default value: 1048576 (bytes, or 1 MB)
vm-heappercent (heappercent)
Percentage of physical memory allocated to the kernel heap. Many of
the kernel data structures are allocated from the kernel heap. The
kernel heap wires physical memory as the kernel data structures are
allocated.
Default value: 7 (percent)
vm-inswappedmin (inswappedmin)
Minimum amount of time, in seconds, that a task remains in the
inswapped state before it is considered a candidate for outswapping.
Default value: 1 (second)
vm-kentry_zone_size (kentry_zone_size)
Size , in bytes, of the kernel's map entry zone submap. Kernel map
entries are reserved for both pageable and nonpageable regions of
kernel virtual address space.
Default value: 16777216 (bytes) (16 MB)
vm-map-index-count
Size of the map entry index.
Default value: 64
A large index can improve the entry lookup time, but may affect index
rebalancing.
vm-map-index-enabled
A value that enables (1) or disables (0) full indexing of map entries.
Each map entry describes one unique disjoint portion of a virtual
address space. If this attribute is set to 1, map entries are indexed
in all processes.
Default value: 1 (enabled)
vm-map-index-hiwat
A value that, when multiplied by the value of vm-map-index-count,
controls when the system creates a map entry index. When a process
allocates map entries equal to the value of the vm-map-index-count
attribute multiplied by the vm-map-index-hiwat attribute, the system
creates a map entry index for fast lookups.
Default value: 4
vm-map-index-lowat
A value that, when multiplied by the value of vm-map-index-count,
controls when the system deletes a map entry index. When a process
removes enough map entries from an index so that the number of entries
is less than the value of the vm-map-index-count attribute multiplied
by the value of the vm-map-index-lowat attribute, the system deletes
the map entry index.
Default value: 2
vm-map-index-rebalance
A value that controls how frequently the map entry index is rebalanced.
If the difference between the longest map entry list and the shortest
map entry list is greater than the value of the vm-map-index-rebalance
attribute, the system will rebalance the index.
Default value: 128
You can decrease the value of the vm-map-index-rebalance to improve the
lookup time. However, this will increase the rate of rebalancing. If
you increase the value of the vm-map-index-rebalance attribute, you
will experience less rebalancing but have slower lookups.
vm-mapentries (mapentries)
Maximum number of map entries that any process can use at one time.
Each map entry describes one unique disjoint portion of a virtual
address space.
Default value: 200 (map entries)
vm-max-rdpgio-kluster (vm_max_rdpgio_kluster)
Size, in bytes, of the largest pagein (read) cluster that is passed to
the swap device.
Default value: 16384 (bytes) (16 KB)
vm-max-wrpgio-kluster (vm_max_wrpgio_kluster)
Size, in bytes, of the largest pageout (write) cluster that is passed
to the swap device.
Default value: 32768 (bytes) (32 KB)
vm-maxvas (maxvas)
Maximum amount of virtual address space, in bytes, that a user process
can use at one time.
Default value: 1073741824 (bytes) (1 GB)
vm-maxwire (maxwire)
Maximum amount of memory, in bytes, that any user process can wire.
(Paging activity generally increases as the amount of wired memory
increases.)
Default value: 16777216 (bytes) (16 MB)
vm-min-kernel-address
Base address of the kernel's virtual address space. The value can be
either Oxffffffff80000000 or Oxfffffffe00000000, which sets the size of
the kernel's virtual address space to either 2 GB or 8 GB,
respectively. You may need to increase the kernel's virtual address
space on very large (VL) systems (for example, systems with several
gigabytes of physical memory and several thousand large processes).
Default value: 18446744071562067968 (2 to the power of 64)
vm-page-free-hardswap
The threshold value that stops page swapping. When the number of pages
on the free list reaches this value, paging stops.
Default value: 1280 (pages)
vm-page-free-min (vm_page_free_min)
The threshold value that starts page swapping. When the number of pages
on the free page list falls below this value, paging starts.
Default value: 20 (pages)
vm-page-free-optimal (vm_page_free_optimal)
The threshold value that begins hard swapping. When the number of pages
on the free list falls below this value for five seconds, hard swapping
begins.
Default value: 72 (pages)
vm-page-free-reserved (vm_page_free_reserved)
The threshold value that determines when memory is limited to
privileged tasks. When the number of pages on the free page list falls
below this value, only privileged tasks can get memory.
Default value: 10 (pages)
vm-page-free-swap
The threshold value that begins swapping of idle tasks. When the number
of pages on the free page list falls below this value, idle task
swapping begins.
Default value: 74 (pages)
vm-page-free-target (vm_page_free_target)
The threshold value that stops paging, When the number of pages on the
free page list reaches this value, paging stops.
Default value: 128 (pages)
vm-page-lock-count
Size of the lock array that is used to synchronize access to vm_page
kernel structures. Instead of locking each page structure, the virtual
address is used to hash into the lock array. Adjust this value only
if excessive lock contention occurs.
Default value: 64
vm-page-prewrite-target
Maximum number of pages that the vm subsystem will prewrite to swap
space if it anticipates running out of memory. The prewritten pages are
the least recently referenced (LRU) pages.
Default value: 256 (pages)
vm-segment-cache-max (u_seg_cache_max)
Number of text segments that can be cached in the segment cache.
(Applies only if you enable segmentation)
Default value: 50 (segments)
The vm subsystem uses the segment cache to cache inactive executables
and shared libraries. Because objects in the segment cache can be
accessed by mapping a page table entry, this cache eliminates I/O
delays for repeated executions and reloads.
Reducing the number of segments in the segment cache can free memory
and help to reduce paging overhead. (The size of each segment depends
on the text size of the executable or the shared library that is being
cached.)
vm-segmentation (segmentation)
A value that enables (1) or disables (0) the ability of shared regions
of user address space to also share the page tables that map to those
shared regions.
Default value: 1 (enabled)
vm-syncswapbuffers (syncswapbuffers)
The number of synchronous I/O requests that can be outstanding to the
swap partitions at one time. Synchronous swap requests are used for
pagein operations and task swapping.
Default value: 128 (requests)
vm-syswiredpercent (syswiredpercent)
Maximum percentage of physical memory that can be dynamically wired.
The kernel and user processes use this memory for dynamically allocated
data structures and address space, respectively.
Default value: 80 (percent)
vm-ubcbuffers (ubcbuffers)
Total number of UBC I/O requests that can be outstanding at one time.
Default value: 256 (requests)
vm-ubcdirtypercent (ubcdirtypercent)
The percentage of pages that must be dirty (modified) before the UBC
starts writing them.
Default value: 10 (percent)
vm-ubcpagesteal(ubcpagesteal)
The minimum number of pages to be available for file expansion. When
the number of available pages falls below this number, the UBC steals
additional pages to anticipate the file's expansion demands.
Default value: 24 (file pages)
vm-ubcseqpercent (ubcseqpercent)
The maximum percentage of UBC memory that can be used to cache a single
file.
Default value: 10 (percent)
vm-ubcseqstartpercent (ubcseqstartpercent)
A threshold value that determines when the UBC starts to recognize
sequential file access and steal the UBC LRU pages for a file to
satisfy its demand for pages. This value is the size of the UBC in
terms of its percentage of physical memory.
Default value: 50 (percent)
vm-vpagemax (vpagemax)
Maximum number of virtual pages within the address space for a process
that can be given individual protection attributes (that is, protection
attributes that differ from the protection attributes associated with
the other pages in the address space).
Changing the protection attributes of a single page within a virtual
memory region causes all pages within that region to be treated as
though they had individual protection attributes. For example, each
thread of a multithreaded task has a user stack in the stack region for
the process in which they run. Because multithreaded tasks have guard
pages (that is, pages that do not have read/write access) inserted
between the user stacks for the threads, all pages in the stack region
for the process are treated as though they have individual protection
attributes.
If a stack region for a multithreaded task exceeds 16 KB pages, you may
want to increase the value of the vm-vpagemax attribute.
Default value: 16384 (pages, or 16 KB pages)
vm-zone_size(zone_size)
Percentage of physical memory that is allocated to the kernel's zone
submap. Many of the dynamically allocated kernel data structures are
allocated out of zones that are located in the zone submap.
Default value: 0 (percent)
SEE ALSO
Commands: dxkerneltuner(8X), sysconfig(8), sysconfigdb(8)
System Configuration and Tuning