B Configuration Attribute Definitions
This appendix contains descriptions of all of the configuration
attributes in the
sysconfigtab
file that can be manipulated or queried with CDE's Kernel Tuner
(dxkerneltuner)
or with the
sysconfig
and
sysconfigdb
commands. (See
Section 2.2.9
and
Section 3.3
for details on the Kernel Tuner and the
sysconfig
and
sysconfigdb
commands.)
Tunable configuration attributes are supported by the following
subsystems:
-
advfs
- AdvFS subsystem
(Section B.1)
bsd_tty
- TTY subsystem
(Section B.2)
cm
- Configuration manager subsystem
(Section B.3)
dli
- Data link interface subsystem
(Section B.4)
generic
- Generic kernel subsystem
(Section B.5)
inet
- Inet subsystem
(Section B.6)
io
- I/O subsystem
(Section B.8)
ipc
- Interprocess Communication subsystem
(Section B.7)
lsm
- LSM subsystem
(Section B.9)
net
- Network subsystem
(Section B.10)
presto
- Prestoserve subsystem
(Section B.11)
proc
- Process subsystem
(Section B.12)
pts
- Pseudoterminal subsystem
(Section B.13)
rt
- Real-time subsystem
(Section B.14)
sec
- Security subsystem
(Section B.15)
snmpinfo
- Snmpinfo subsystem
(Section B.16)
socket
- Socket subsystem
(Section B.17)
streams
- STREAMS subsystem
(Section B.18)
ufs
- UFS subsystem
(Section B.19)
vfs
- VFS subsystem
(Section B.20)
vm
- Virtual memory subsystem
(Section B.21)
xpr
- XPR subsystem
(Section B.22)
This is not a complete list of the subsystems that have attributes in
sysconfigtab
(that is, the subsystems that are displayed when a
sysconfig
-s
command is issued).
This appendix covers only those subsystems that have tunable
attributes related to system performance. Subsystems not covered in
this appendix include the following:
bufcall,
cam,
cam_disk,
cam_tape,
cma_dd,
ddr,
eisa,
kds,
kinfo,
kio,
ldtty,
ppp,
qvision,
strstd,
table_mgr,
timod,
tirdwr,
vga,
ws,
and
xtiso.
The attribute descriptions in this appendix are grouped by subsystem.
If an attribute has a system parameter that corresponds to it, the
name of the system parameter appears in parentheses after the
attribute name.
The names of attributes that can be dynamically reconfigured with the
sysconfig
-r
command are preceded by an asterisk
(*).
Currently, only the IPC and VFS subsystems
(Section B.7
and
Section B.20,
respectively)
contain attributes that can be dynamically reconfigured in this way.
To display the minimum and maximum values that can be given to a
particular attribute, issue the
sysconfig
-Q
command.
B.1 AdvFS Subsystem Attributes
The attributes for the AdvFS subsystem include:
-
AdvfsCacheMaxPercent
AdvfsMinFragGrps
AdvfsMaxFragGrps
advfs-parallel
(not tunable)
For details on these attributes, see the
Guide to File System Administration
for the POLYCENTER Advanced File System and Utilities for
Digital UNIX.
B.2 BSD_TTY Subsystem Attributes
-
nclist
(nclist)
-
Controls the number of clist buffers allocated.
The tty subsystem is specifically for the clist-based tty subsystem.
(Digital UNIX has both STREAMS-based and clist-based tty subsystems.)
The clist-based tty subsystem is used by the console
and the serial ports.
Not that is is also possible to configure the pseudoterminal subsystem
to be clist based. This is accomplished by specifying the pseudo-device
pty
nn
(default:
nn
= 80) in the kernel configuration file.
B.3 Configuration Manager Subsystem Attributes
-
max-callbacks
-
Specifies the maximum number of registered callbacks that are allowed by
the kernel at any point in time. If exceeded, an error message is
issued.
B.4 Data Link Interface Subsystem Attributes
-
must-be-root
-
When set to 1, mandates that the user of the raw socket
interface must be root.
Setting
must-be-root
to zero will allow any user to use the raw socket interface to DLI.
DECnet and STREAMS protocol stacks use a DLI-provided raw interface
to the data link. DLI also provides a raw socket interface.
Default value: 1
-
max-ifq-length
-
Specifies the number of received packets that can get
queued to DLI. If packets are being dropped, raising this limit
may help.
Default value: 512
B.5 Generic Kernel Subsystem Attributes
-
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 rate of clock interrupts per second, currently 1024
on all platforms.
Default value: 1024
-
cpu-enable-mask
(cpu_enable_mask)
-
This bit mask controls whether secondary CPUs are allowed to be
started by the master CPU. The lowest order bit (bit 0) in this
mask corresponds to CPU 0, which is usually the master CPU. The
next highest order bit corresponds to CPU 1 and the succeeding
bits correspond in a similar fashion to the remaining CPUs.
The default value for this mask is -1, which means that all CPUs
present in the system are allowed to be started.
This mask may be specified
as 0 to force uniprocessor operation in a multi-CPU system. (The
bit for the master CPU does not need to be specified as set because the
master CPU is always started. This bit is always set automatically
at boot time.)
If
lockmode
has been specified to be 0 or 1, all bits in
cpu_enable_mask
that do not correspond to the master CPU are set to zero.
Default value: -1
-
dump-sp-threshold
-
Can be used to force multiple-partition dumps or to allow dumps to be
placed on the primary swap partition if they are small enough.
If a dump will fit on the primary swap partition and also leave excess
space equal to the threshold value,
the dump will be done as a single-volume dump on the primary swap
partition in spite of the availability of secondary swap partitions.
(See the manual
Kernel Debugging
for details.)
Default value: 4096
-
kmem_debug
-
An interactive boot flag that is used for diagnostic purposes
only.
If set on (1), every time the kernel memory allocator is called
on to allocate or deallocate memory, checks are made to
determine whether the allocations or deallocations are performed
properly in the kernel memory pool. If the kernel memory pool
is in a corrupt state, it crashes the system and provides useful
debugging information.
-
lite-system
-
When set on (1), this attribute places in effect a selection of
default attribute values that enhance the performance of 24-MB systems.
-
lockdebug
(lockdebug)
-
This flag controls whether lock debugging should be enabled.
If lock debugging is enabled
(lockdebug=1),
the default value for
lockmode
will be 4. If
lockmode
has also been specified, it will override the
lockdebug
setting (that is,
lockdebug
will be assigned to be 0 or 1 depending on whether
lockmode
is 0-3 or 4).
Default value: 0 (off)
-
lockmode
(lockmode)
-
The mode of the simple lock primitive package within
the kernel. Four sets of locking primitives
support various combinations of real-time (RT) kernel preemption,
symmetric multiprocessing (SMP), and lock debugging with lock
statistics.
-
When neither RT nor SMP is required
(lockmode=0),
the calls to the simple lock primitives are patched out completely.
-
When only RT is required
(lockmode=1),
the simple lock operations maintain a "preemption blocking" count.
-
When SMP is required
(lockmode=2),
the lock operations provide synchronization between multiple CPUs.
-
When both RT and SMP are required
(lockmode=3),
both sets of processing
(lockmode=1
and
lockmode=2)
are performed.
-
When lock debugging and stats are required
(lockmode=4),
all of the processing for
lockmode=3
is performed, with the addition of kernel lock debugging and
statistics.
The default setting for
lockmode
is dynamically chosen at boot time depending on the values for
rt_preempt_opt,
cpu_enable_mask,
and
lockdebug,
and on whether multiple CPUs are able to be booted. If a value for
lockmode
is specified (0-4), it overrides the default setting and disables any
of the three related capabilities that cannot
be supported by the chosen set of simple lock primitives.
-
lockmaxcycles
-
Used internally for debugging purposes.
Tuning Suggestions: Not tunable.
-
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,
this is deemed a fatal error and the system
panics with a "simple_lock: time limit exceeded" message.
Default value: 15 (seconds)
-
max-lock-per-thread
-
The depth to which complex locks can be nested for a thread at any
point in time. The value of
max-lock-per-thread
is used for debugging (in
lockmode=4).
-
message-buffer-size
msgbuf_size
-
The size of the message buffer used to store boot log messages.
Default value: 4096
-
old_obreak
-
Internal use only. Do not modify.
Default value: 1 (on)
-
physio_max_coalescing
-
This attribute controls how I/O requests are gathered when
readb
or
writeb
operations are directed at a character device (not a block
device). For example, when set to 65536, eight 8-K
buffers coalesce into one 64-K buffer. This improves the efficiency
of database operations.
Tuning Suggestions: Not tunable.
-
rt-preempt-opt
(rt_preempt_opt)
-
This flag controls whether real-time kernel preemption should be
enabled.
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. If
lockmode
has also been specified to be 0 or 2, it overrides the
rt_preempt_opt
setting by forcing it to 0.
Default value: 0 (off)
-
user_cfg_pt
-
Internal use only. Do not modify.
Default value: 0 (off)
B.6 Inet Subsystem Attributes
-
inifaddr_hsize
-
Number of buckets in
in_ifaddr
hash table.
Default value: 32 (1 <<
_INIFADDRHEXP)
-
ipdefttl
-
Default IP time-to-live.
Default value:
DEFTTL
-
ipdirected_broadcast
-
Enables (1) or disables (0) the following check: an IP datagram whose
destination address is a directed broadcast address must be received on the
interface corresponding to that broadcast address.
Default value: 0 (disabled)
-
ipforwarding
-
Must be enabled (1) for a system to forward IP packets not
addressed to itself. Usually set with the
/usr/sbin/iprsetup
command.
Default value: 0 (disabled)
-
ipfragttl
-
Maximum time an IP fragment can spend waiting to be reassembled.
Default value:
IPFRAGTTL
(in units of half-seconds)
-
ipgateway
-
Must be enabled (1) for a system to forward IP packets not
addressed to itself. Usually set with the
/usr/sbin/iprsetup
command.
Default value: 0 (disabled)
-
ipsendredirects
-
Enables (1) or disables (0) the sending of ICMP redirect messages.
Default value: 1 (enabled)
-
ipsrcroute
-
Enables (1) or disables (0) source routing.
Default value: 1 (enabled)
-
pmtu_enabled
-
Enables (1) or disable (0) path MTU discovery.
Default value: 1 (enabled)
-
pmtu_decrease_intvl
-
Time to wait after a decrease in a path MTU value before attempting to
learn of an increase to the path MTU.
Default value:
PMTU_DECREASE_INTVL
(in units of half-seconds)
-
pmtu_increase_intvl
-
Time to wait after an increase in a path MTU value before attempting
another increase.
Default value:
PMTU_INCREASE_INTVL
(in units of half-seconds)
-
pmtu_rt_check_intvl
-
Timer processing interval for routes participating in path MTU
discovery process.
Default value:
PMTU_RT_CHECK_INTVL
(in units of half-seconds)
-
subnetsarelocal
-
When enabled (1), an IP address in the same network but different
subnet is considered locally attached. When disabled (0), only IP
addresses matching a directly connected subnet are considered local.
Default value: 1 (enabled)
-
tcbhashsize
-
Number of buckets in TCP inpcb hash table.
Default value:
_TCBHASHSIZE
-
tcp_compat_42
-
Enables (1) or disables (0) 4.2BSD compatible behavior for initial
send sequence numbers and keepalives.
Default value: 1 (enabled)
-
tcp_dont_winscale
-
Enables (0) or disables (1) window scaling.
Default value: 0 (enabled)
-
tcp_keepcnt
-
Maximum number of keepalive probes that can be sent before a connection
is dropped.
Default value:
TCPTV_KEEPCNT
-
tcp_keepidle
-
Idle time before first keepalive probe.
Default value:
TCPTV_KEEP_IDLE
(in units of half-seconds)
-
tcp_keepinit
-
Initial connect timeout.
Default value:
TCPTV_KEEP_INIT
(in units of half-seconds)
-
tcp_keepintvl
-
Time between keepalive probes.
Default value:
TCPTV_KEEP_INTVL
(in units of half-seconds)
-
tcp_mssdflt
-
Default maximum segment size.
Default value:
TCP_MSS
(bytes)
-
tcpnodelack
-
Enables (1) or disables (0) delayed acknowledgements.
Default value: 1 (enabled)
-
tcp_recvspace
-
Default receive buffer size for TCP sockets.
Default value:
TCP_RECVSPACE
(bytes)
-
tcprexmtthresh
-
Number of duplicate ACKs before retransmit.
Default value:
TCPREXMTTHRESH
-
tcp_rttdflt
-
Initial assumed round trip time.
Default value: 3 (seconds)
-
tcp_sendspace
-
Default send buffer size for TCP sockets.
Default value:
TCP_SENDSPACE
(bytes)
-
tcp_ttl
-
IP time-to-live for TCP packets.
Default value:
TCP_TTL
-
tcptwreorder
-
Enables (1) or disables (0) movement of TCP inpcbs in
TIME_WAIT
state to end of inpcb list.
Default value: 1 (enabled)
-
tcp_urgent_42
-
Enables (1) or disables (0) 4.2BSD compatible behavior for urgent
pointer. When enabled, the urgent pointer is considered to
be a pointer to the first octet of data past the urgent section.
When disabled, the urgent pointer is considered to be a pointer
to the last octet of data in the urgent section.
Default value: 1 (enabled)
-
udpcksum
-
Enables (1) or disables (0) UDP checksumming.
Default value: 1 (enabled)
-
udp_recvspace
-
Default receive buffer size for UDP sockets.
Default value:
UDP_RECVSPACE
(bytes)
-
udp_sendspace
-
Default send buffer size for UDP sockets.
Default value:
UDP_SENDSPACE
(bytes)
-
udp_ttl
-
IP time-to-live for UDP packets.
Default value:
UDP_TTL
B.7 Interprocess Communication Subsystem Attributes
Note that IPC subsystem attributes that can be dynamically reconfigured
with the
sysconfig
-r
command are preceded by an asterisk
(*).
-
max-kernel-ports
(port_max_num)
-
The maximum number of kernel IPC ports that can be in use on the
system at any point in time.
Default value: (task_max * 3 + tread_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)
-
msg-max
(msgmax)
-
The maximum size of a single System V message.
Default value: 8192 bytes (1 page)
-
msg-mnb
(msgmnb)
-
The maximum number of bytes that can be queued to a single System V
message queue.
Default value: 16384 bytes (2 pages)
-
msg-mni
(msgmni)
-
The maximum number of System V message queues that can be in use
on the system at any point in time.
Default value: The default is 50, but the system rounds the number up
to the value associated with the next higher power of two (64).
-
msg-tql
(msgtql)
-
The maximum number of messages that can be queued to a single System
V message queue at any point in time.
Default value: 40
-
num-of-sems
(num_of_sems)
-
Not used. Obsolete.
-
port-hash-max-num
(port_hash_max_num)
-
The number of port hash buckets that the kernel uses to manage the
kernel ports.
Default value: 50*max-kernel-ports
Tuning Suggestions: Not tunable.
-
port-reserved-max-num
(port_reserved_max_num)
-
The maximum number of ports that can be reserved by the kernel.
Default value: max-kernel-ports
Tuning Suggestions: Not tunable.
-
sem-aem
(semaem)
-
The maximum adjustment that can be made to any System V semaphore
when a process exits.
Default value: 16384
-
sem-mni
(semmni)
-
The maximum number of System V semaphores that can be in use on the
system at any point in time.
Default value: The default is 10, but the system rounds the number up
to the value associated with the next higher power of two (16).
-
sem-msl
(semmsl)
-
The maximum number of System V semaphores that can be in use by a
single process at any point in time.
Default value: 25
-
sem-opm
(semopm)
-
The maximum number of operations that can be outstanding on a single
System V semaphore at any point in time.
Default value: 10
-
sem-ume
(semume)
-
The maximum number of undo operations that can be outstanding on a
single System V semaphore at any point in time.
Default value: 10
-
sem-vmx
(semvmx)
-
The maximum integer value that any System V semaphore is allowed to
contain on the system.
Default value: 32767
-
set-max-num
(set_max_num)
-
The maximum number of port sets that can be in use by the kernel at
any point in 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)
Tuning Suggestions: Not tunable.
-
shm-max
(shmmax)
-
The maximum size of a single System V shared memory region.
Default value: 4194304 bytes (512 pages)
-
shm-min
(shmmin)
-
The minimum size of a single System V shared memory region.
Default value:
The default size is one byte, but all requests are rounded up to
the next page size.
-
shm-mni
(shmmni)
-
The maximum number of shared memory regions that can be in use on the
system at any point in time.
Default value: The default is 100, but the system rounds the number up
to the value associated with the next higher power of two (128).
-
shm-seg
(shmseg)
-
The maximum number of System V shared memory regions that can be
attached to a single process at any point in time.
Default value: 32
-
*
ssm-enable-core-dump
(ssm_enable_core_dump)
-
Enable writing of segmented shared memory contents when an application
issues a core dump. Because segmented shared memory can be
quite 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 both be quite large - especially in large
database environments.
The shared memory can be useful for debugging purposes, but in
some instances, it may be necessary to disable including it in
core files because of time and resource limitations.
Default value: 1 (enabled)
-
*
ssm-threshold
(ssm_threshold)
-
The minimum threshold for a System V shared region that is needed
to enable use of shared page tables.
Setting this value to zero effectively disables use of shared page
tables for shared memory. The size must be at least equal to
SSM_SIZE
(defined in
machine/pmap.h).
Default value: SSM_SIZE (which is 8MB by default).
The attributes for the AdvFS subsystem include:
-
AdvfsCacheMaxPercent
AdvfsMinFragGrps
AdvfsMaxFragGrps
advfs-parallel
(not tunable)
For details on these attributes, see the
Guide to File System Administration
for the POLYCENTER Advanced File System and Utilities for
Digital UNIX.
B.8 I/O Subsystem Attributes
-
basic-dma-window-size
-
Used to control allocation of DMA bus space for AlphaServer 2100
systems with memory channel adapters. To ensure adequate bus space
for this hardware configuration, the attribute should be set to 256.
For other systems or AlphaServer 2100s without a memory
channel adapter, adequate bus space is provided by the normal
allocation scheme. (The normal allocation scheme allocates DMA bus
space as a percentage of the physical memory on the system.)
Default value: 0 (megabytes)
-
bdevsw_size
(nblkdev)
cdevsw_size
(nchrdev)
-
Specify the sizes of the in-memory tables for the bdev and cdev
switches. These tables are used to access device drivers, and they
must be large enough to accommodate the drivers registered in the
bdevsw
and
cdevsw
tables in
/usr/sys/system_name/conf.c
file and any additional device drivers that will be dynamically loaded.
Default values: 70
(bdevsw_size)
and 125
(cdevsw_size)
-
cam_ccb_pool_size
(cam_ccb_pool_size)
-
The initial size of the buffer pool free list at boot time.
The default is 200.
(One CAM control block (ccb) is needed for each outstanding I/O
request.)
Tuning Suggestions: Do not attempt to tune.
-
cam_ccb_low_water
(cam_ccb_low_water)
-
The number of buffers in the pool free list at which more buffers
are allocated from the kernel. CAM reserves this number of buffers
to ensure that the kernel always has enough memory to shutdown runaway
processes. The default is 100.
Tuning Suggestions: Do not attempt to tune.
-
cam_ccb_increment
(cam_ccb_increment)
-
The number of buffers either added or removed from the buffer pool
free list. Buffers are allocated on an as-needed basis to handle
immediate demands, but are released in a more measured manner to
guard against spikes.
Default value: 50
Tuning Suggestions: Do not attempt to tune.
-
cdevsw_size
-
See the description of the
bdevsw_size
attribute.
-
device_switch_inited
device_switch_print
device_switch_stale
-
Internal use only. Do not modify.
-
max-iosize-read
max-iosize-write
-
When nondriver kernel code needs to know the maximum size of an I/O
request for a block-I/O device, it issues an
ioctl()
call to the driver.
If that
ioctl()
fails or if the values returned are zero, the values of the
max-iosize-read
and
max-iosize-write
variables are used.
Default value: 65536 (for both
max-iosize-read
and
max-iosize-write)
Tuning Suggestions: Change the default values only under the following
circumstances: when a third-party device driver does not use the
ioctl()
call and has a maximum size that is less than the default in
sysconfigtab
(64K).
(The person writing the third-party device driver must provide
information - either in documentation or an installation script - on
how to change the entries in
sysconfigtab
to the proper values.)
B.9 Logical Storage Manager Subsystem Attributes
The attributes for the LSM subsystem include:
-
lsm_root_dev_is_volume
(not tunable)
lsm_swapdev_is_volume
(not tunable)
max-vol
The
lsm_root_dev_is_volume
and
lsm_swapdev_is_volume
attributes are used by the subsystem when an LSM volume is used
for the root file system or the primary swap volume,
respectively. For details on tuning the
max-vol
attribute, see the manual
Logical Storage Manager.
B.10 Network Subsystem Attributes
-
arptab_nb
-
The number of hash buckets in the ARP (address resolution
protocol) table.
For optimal hashing, the number should be a prime number.
Default value: 37 (hash buckets)
-
netisrthreads
-
The number of network threads configured in a system.
Default value:
n
(a number based on the number of CPUs in a system)
-
nslip
-
The number of slip (serial line internet protocol) lines.
Default value: 1
B.11 Prestoserve Subsystem Attributes
-
prmetaonly
(prmetaonly)
-
When set to nonzero (1), causes Prestoserve to cache only file-system
metadata and to not cache synchronous write data.
This capability is useful when accessing a lot of file-system
metadata but not rereading recently written data.
For example, if your applications keep appending to a large set of
files, but not frequently rereading the data, it would be more
efficient to use the limited Prestoserve resources to cache only
metadata.
The Prestoserve product consists of optional hardware (NVRAM) and software
that must be installed on your system. See the
Guide to Prestoserve
for details on Prestoserve.
Default value: 0 (off)
B.12 Process Subsystem Attributes
-
autonice
(autonice)
-
When set, applications that use more than 600 seconds of CPU time
will automatically increase their
nice
values (that is, lower their scheduling priorities).
Default value: 0 (off)
-
autonice-penalty
-
The nice value applied to a process after it has
exceeded autonice-time seconds of CPU time.
Default value: 4
-
autonice-time
-
The time in seconds of total CPU time a process can run
before the autonice-penalty is applied as a nice value to the process.
Default value: 600
-
give-boost
(give_boost)
-
When set on (1), this attribute give a priority boost to processes
that have just woken up from a block I/O operation. This reduces I/O
latency and makes the system generally more responsive.
-
max-per-proc-address-space
(vm_initial_limit_vas.rlim_max)
max-per-proc-data-size
(vm_initial_limit_data.rlim_max)
max-per-proc-stack-size
(vm_initial_limit_stack.rlim_max)
-
Maximum values for the current limits of the attributes
per-proc-address-space,
per-proc-data-size,
and
per-proc-stack-size.
The current limits can be increased at run time by means of the
setrlimit(2)
system call or the
ulimit(3)
C library call. The current limits cannot be expanded
beyond the values established by the "max-per-proc-*" attributes.
-
max-proc-per-user
(maxuprc)
-
The maximum limit of processes (tasks) a user can create. (The
superuser is not affected.)
Default value: 64
-
max-threads-per-user
(maxuthreads)
-
The maximum limit of threads a user can create. (The superuser
is not affected.)
-
maxusers
(maxusers)
-
The
maxusers
attribute is used to tune several system parameters to increase the
number of users who can theoretically use a system simultaneously.
Changing the value of this attribute generates changes to
the values of
taskmax,
threadmax,
and
min_free_vnodes,
to name a few.
Default value: Specified in the system configuration file.
-
ncallout
(ncallout)
-
Not used. Obsolete.
-
ncallout_alloc_size
-
The low watermark for the amount of memory used for timeout tables.
The value of this attribute is adjusted dynamically.
Tuning Suggestions: Not tunable.
-
open-max-hard
(open_max_hard)
open-max-soft
(open_max_soft)
-
The number of per-process file descriptors.
Use the
getdtablesize
system call to obtain the current limit.
The value of
open_max_soft
is the default per-process limit.
A process can increase its soft limit up to its hard limit using
setrlimit.
The default hard and soft limits must be at least 64, and less than
or equal to
OPEN_MAX_SYSTEM
in
param.h.
Default value: 4096 (for both attributes)
-
per-proc-address-space
(vm_initial_limit_vas.rlim_cur)
per-proc-data-size
(vm_initial_limit_data.rlim_cur)
per-proc-stack-size
(vm_initial_limit_stack.rlim_cur)
-
The current upper limits of the respective resources. For example,
a user stack cannot exceed the size set by the
per-proc-stack-size
attribute.
-
round-robin-switch-rate
(round_robin_switch_rate)
-
The number of context switches per second that can occur between equal
priority processes. The lower the number, the less the system
timeslices; the higher the number, the more the system timeslices.
-
sched-min-idle
(sched_min_idle)
-
The amount of time that a thread must remain idle on a multiprocessor
system before it is eligible to migrate to another processor.
This attribute is used to tune the "soft affinity" algorithm on
multiprocessor systems. This 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 by the Scheduler on multiprocessor systems;
it has no effect on single CPU systems.
-
task-max
(taskmax)
-
The maximum number of tasks that can run simultaneously on
the system.
Default value: 20 + 8 * maxusers
-
thread-max
(threadmax)
-
The maximum number of kernel threads that can run simultaneously on
the system.
Default value: 2 * taskmax
B.13 Pseudoterminal Subsystem
-
nptys
-
The number of STREAMS-based pseudoterminals (ptys) that can
be active on your system.
Default value: 255
B.14 RT Subsystem Attributes
-
aio-max-num
-
The maximum number of concurrent asynchronous I/O requests that
can be outstanding on the system at any point in time.
Default value: 716
-
aio-max-percent
-
The percentage of physical memory that the asynchronous I/O database
can occupy. This limits the maximum number of concurrent asynchronous
I/O requests that can be set by
aio-max-num.
Default value: 1 (percent)
-
aio-max-retry
-
Specifies the number of times that the aio subsystem, when doing
raw device I/O, will retry an attempt to lock a user I/O buffer into
memory before returning a failure
(EAGAIN).
Default value: 0
-
aio-retry-scale
-
Controls progression of wait periods between aio retries.
Default value: 4
-
aio-task-max-num
-
The maximum number of simultaneous aio requests that can be outstanding
per task.
Default value: 333
-
sigqueue-max-num
-
The maximum number of signal-queuing operations that can be outstanding
per process (pid).
Default value: 64
B.15 Security Subsystem
-
audit-buffer-size
-
If the audit overhead is heavy, I/O performance will be reduced.
Increasing the audit buffer size reduces I/O activity.
In most situations, the impact of the larger buffer size on
I/O activity is very small.
However, if you route audit data to a slow device (for example, to
tape) or across a network, increasing buffer size can have a
significant impact.
The audit buffer is in 1-Kbyte units and can be set from
16-Kbytes (the default) to 1024-Kbytes.
Default value: 16KB
-
audit-site-events
-
The size (in bytes) reserved for the audit site mask. Each byte can
support four site events.
No effect on performance.
Default value: 16 (bytes)
-
nfs-flatten-mode
-
Controls the permission bits of a file with ACLs as seen by an
NFS V2 client.
The allowable values are:
-
0 - unmodified setting. The actual file mode is sent.
-
1 - restrictive setting. The group and other fields of the
file mode are modified such that only access that would be granted
to everyone in the ACL is granted by the mode bits.
-
2 - permissive setting. The group and other bits are modified
such that access that would be granted to anyone in the ACL is
granted by the mode bits.
See
proplistd(8)
for details. No effect on performance.
Default value: 0
B.16 Snmpinfo Subsystem
-
snmp_devs
-
Controls the number of concurrent accesses to the snmpinfo mechanism.
The snmpinfo mechanism is used by snmp (simple network management
protocol) agents to access kernel information.
Default value: 12
B.17 Socket Subsystem
-
sominconn
-
Minimum value for socket listen queue length limit (backlog).
Silently overrides user-specified backlog when the user backlog is
less than than the value of this attribute.
Takes precedence over the
somaxconn
attribute.
Default value: 0
-
somaxconn
-
Maximum value for socket listen queue length limit (backlog).
Silently overrides user-specified backlog when the user backlog is
greater than the value of this attribute.
The
sominconn
attribute takes precedence.
Default value:
SOMAXCONN
-
sb_max
-
Maximum value for socket buffer size.
Default value:
SB_MAX
B.18 STREAMS Subsystem Attributes
-
nstrpush
-
The maximum number of STREAMS modules that can be pushed on a stream.
Prevents an errant user process from consuming all of the available
queues on a single stream.
Default value: 9
-
strmsgsz
-
The maximum allowable size (in bytes) of the data portion of a STREAMS
message. If it is larger than necessary, a single
write
or
putmsg
can consume an inordinate number of message blocks.
Default value: 12288 (12K)
B.19 UFS Subsystem Attributes
-
create-fastlinks
(create_fastlinks)
-
The switch that enables (1) or disables (0) creation of fast
symbolic link files.
Default value: 1 (on)
-
inode-hash-size
(inohsz)
-
The size of the inode hash chain table for the inode LRU cache.
Maximum value: max-vnodes/2
Larger hash chain tables will spread the inode structures and may tend
to make shorter chain lengths. This can reduce linear searches and can
improve lookup speeds. On an average, chains should not be longer than
2 or 3 elements.
Default value: 512 (slots)
-
nmount
(nmount)
-
(Redundant - replaced by max-ufs-mounts.)
-
ufs-blkpref-lookbehind
(ufs_blkpref_lookbehind)
-
The range of blocks, behind the current block location, to search for
a free block that can be allocated for an indirect block write
operation (for all writes other than the first).
A value greater than 1 will enable a look-behind search before writing
each indirect block after the first one.
Default value: 8
B.20 VFS Subsystem Attributes
Note that VFS subsystem attributes that can be dynamically reconfigured
with the
sysconfig
-r
command are preceded by an asterisk
(*).
-
bufcache
(bufcache)
-
The percentage of memory that can be allocated for metadata buffers.
Increasing
bufcache
can increase file system performance by providing
more space for storing frequently used copies of disk data.
Default value: 3 (percent) for 32-MB or larger systems; 2 (percent) for
24-MB systems
-
buffer-hash-size
(bufhsz)
-
The size 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.
Larger buffer hash chain size will spread the buffers and may tend to
make shorter chain lengths. This can reduce linear searches and
improve speed.
Default value: 512 slots
-
*
max-free-file-structures
(max_free_files)
-
Maximum possible number of file structures on the free list.
Can be dynamically reconfigured on a running kernel using the
sysconfig -r
command.
Free file structures are chained for reuse on the free list up to a
maximum of
max_free_files,
beyond which they are deallocated.
Default value: 0
-
*
max-ufs-mounts
(max_ufsmounts)
-
Maximum possible UFS/MFS file system mounts.
Can be dynamically reconfigured on a running kernel using the
sysconfig
-r
command.
The value of this attribute depends on the number of UFS/MFS file
systems that need to be mounted. This attribute does not affect
performance.
Default value: 1000
-
*
max-vnodes
(max_vnodes)
-
Determines the maximum number of vnodes that can be present in a
system. Can be dynamically reconfigured on a running kernel using the
sysconfig
-r
command.
Minimum/maximum values:
-
Minimum value = nvnode
-
Maximum value = Number of vnodes that fit into five percent of
available memory
Increasing the value of this attribute allows more vnodes in the system
and helps support more users/processes that demand a large number of
vnodes. Large values demand more memory.
Default value: Same as maximum value for 32-MB or larger systems;
1000 vnodes for 24-MB systems
-
*
min-free-vnodes
(min_free_vnodes)
-
Determines the minimum number of free vnodes that can be present in a
system.
Can be dynamically reconfigured on a running kernel using the
sysconfig
-r
command.
Altering the value of this attribute ensures that vnodes will not be
deallocated once the number of free vnodes reaches this value.
It can be regarded as a low watermark for vnode deallocation.
Default value: The value of nvnode for 32-MB or larger systems;
150 vnodes for 24-MB systems
-
name-cache-hash-size
(nchsz)
-
The size of the hash chain table for the
namei
cache. Larger hash chain tables will spread the
namei
cache elements and may tend to make shorter chains.
This can reduce linear searches and can improve lookup speeds.
On average, chains should not be longer than 2 or 3 elements.
Maximum value: nchsize/2
Default value: 256 slots
-
name-cache-size
(nchsize)
-
Number of elements in the
namei
cache. Improves
namei
cache performance, but is allocated statically when the kernel is
booted. Size cannot be reconfigured on a running kernel.
Maximum value: 2*max_vnodes*11/10
Default value: 2*nvnode*11/10 (elements) for 32-MB or larger systems;
150 (elements) for 24-MB systems
-
namei-cache-valid-time
(ncache_valid_time)
-
Namei cache entries older than this value are discarded (because they
could have been deallocated).
Very small values cause aggressive deallocation of vnodes, but
degrade the
namei
cache lookup performance. Higher values retain vnodes references in the
namei
cache for a longer period of time and can thereby improve the
namei
cache lookup performance.
Default value: 1200 (seconds) for 32-MB or larger systems; 30
(seconds) for 24-MB systems
-
noadd-exec-access
-
Allows you to configure your system so that no new executables can be
created. This is a security feature and is not related to system
performance.
-
nvnode
(nvnode)
-
(Obsolete). Retained for compatibility purposes. Sets the value of
min-free-vnodes,
that is, the minimum number of free vnodes.
Also sets
name-cache-size
(nchsize)
and is used to determine the size of the static vnode table.
If
nvnode
is modified before a reboot, it modifies the lockfile zone
size and
specinfo_zone
size allocation, in addition to the value of
min-free-vnodes.
Default value: nproc+(2*maxusers)+128
-
path-num-max
(path_num_max)
-
The size of the path name zone for pathname lookup buffers.
Increasing the value of
path-num-max
will increase the zone size allocated for pathnames.
Default value: 64 (zone elements)
-
pipe-maxbuf-siz
-
Maximum number of bytes buffered per pipe.
Default value: 65536 (64K)
-
pipe-single-write-max
-
Largest size of a single write to a pipe.
Default value: -1
-
pipe-databuf-size
-
Number of data bytes in each pipe data buffer.
Default value: 8192
-
pipe-max-bytes-all-pipes
-
Maximum number of bytes reserved for all pipes.
Default value: 81920000
-
special-vnode-alias-tbl-size
(spechsz)
-
The size of the special vnodes alias table for vnodes of special
device files, such as character-I/O or block-I/O device files.
Increasing the table size will allow more special device files.
Default value: 64
-
sys-v-mode
(sys_v_mode)
-
Obsolete System V tunable parameter.
-
ucred-max
(ucred_max)
-
Not used. Obsolete.
-
*
vnode-age
(vnode_age)
-
Determines whether a vnode at the head of the free list can be
recycled. If the vnode is not older than the value of
vnode-age,
a new vnode is allocated (if possible).
Can be dynamically reconfigured on a running kernel using the
sysconfig
-r
command.
Smaller values cause aggressive recycling of vnodes; larger values
cause aggressive vnode allocations, retaining vnodes for a longer
time on the free-list.
Default value: 120 (seconds) for 32-MB or larger systems; 2
(seconds) for 24-MB systems
-
vnode-deallocation-enable
-
Enables (1) or disables (0) vnode deallocation.
Enabling deallocation helps return memory used by the vnodes back
to the system after use.
Default value: 1 (on)
B.21 Virtual Memory Subsystem Attributes
-
contig-malloc-percent
-
The percent of physical memory that is reserved for contiguous physical
memory allocation at boot time.
Default value: 20 (percent)
-
dump-user-pte-pages
-
The flag that controls whether the user pagetable pages will be
written as part of a crash dump. Setting the flag on provides more
debugging information in the event of a system crash.
Default value: 0 (off)
-
gh-chunks
gh-min-seg-size
gh-fail-if-no-mem
-
These attributes are used to tune the performance of shared memory
segments. Use of these parameters may require extensive manual tuning
of databases and the operating system. Their use is recommended
in only an extremely small number of cases.
For details on their use, see the information provided on the
documentation CD-ROM in the text file
/DOCUMENTATION/TEXT/granularity_hints.txt.
(See the
Installation Guide
for information on how to mount the CD-ROM.)
-
kernel-stack-guard-pages
-
The flag that controls whether the kernel stacks will be separated with
unmapped guard pages.
Guard pages are a debugging aid that helps to isolate kernel stack
corruption bugs caused by either overflowing or underflowing the kernel
stack.
Default value: 1 (on)
-
new_wire_method
-
Internal use only. Do not modify.
Default value: 1 (on)
-
ubc-borrowpercent
(ubc_borrowpercent)
-
The percentage of managed physical memory that the UBC is allowed to
have when the system starts global paging. In other words, the UBC is
borrowing all memory above
ubc-borrowpercent.
Default value: 20 (percent)
-
ubc-maxdirtywrites
-
The number of I/O operations (per second) that the virtual memory
subsystem will perform when the number of dirty (modified) pages
in the UBC exceeds the value associated with
vm-ubcdirtypercent.
Default value: 5
-
ubc-maxpercent
(ubc_maxpercent)
-
The maximum percentage of managed physical memory that the UBC can
ever be using at any point in time.
Default value: 100 (percent)
-
ubc-minpercent
(ubc_minpercent)
-
The minimum percentage of managed physical memory that the UBC
retains in its cache when it is forced to give pages back to the system.
Default value: 10 (percent)
-
vm-aggressive-swap
-
A Boolean flag indicating whether the task swapper should be more
aggressive in swapping out idle tasks to prevent the system from
entering a low memory condition.
Aggressive swapping enables more concurrent jobs to be run
simultaneously but could slightly reduce the interactive response of a
system that is paging and swapping very heavily.
Default value: 0 (off)
-
vm-asyncswapbuffers
(asyncswapbuffers)
-
The total number of asynchronous I/O requests per swap
partition that can be outstanding at any point in time. Asynchronous
swap requests are used for page-out and modified page pre-writing.
Default value: 4 (asynchronous I/O requests per swap partition)
-
vm-clustermap
(clustermap)
-
The size of the kernel cluster submap. This submap is used to
allocate the scatter/gather map for clustered file and swap I/O.
Default value: 1048576 (1M)
-
vm-clustersize
(clustersize)
-
The maximum size of a single scatter/gather map
for a clustered I/O request.
Default value: 65536 (64K)
-
vm-cowfaults
(cowfaults)
-
The number of times that the pages of an anonymous objects are
copy-on-write faulted after a fork operation before they are
copied as part of the fork operation.
Default value: 4
-
vm-csubmapsize
(csubmapsize)
-
The size of the kernel copy submap.
Default value: 1048576 (1M)
-
vm-heappercent
(heappercent)
-
The virtual size of the kernel heap expressed as a percentage of
physical memory. 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)
-
The minimum amount of time in one-second ticks that a task must be in
the inswapped state before is can be reconsidered as an outswap
candidate.
Default value: 1 (second)
-
vm-kentry_zone_size
(kentry_zone_size)
-
The virtual size of the kernel's map entry zone submap.
The kernel map entries are reserved for both pageable and non-pageable
regions of kernel virtual address space.
Default value: 16777216 (16M)
-
vm-mapentries
(mapentries)
-
The maximum number of map entries that any process can use at any
point in time. Each map entry describes one unique disjoint portion of
a virtual address space.
Default value: 200
-
vm-max-rdpgio-kluster
(vm_max_rdpgio_kluster)
-
The largest page-in (read) cluster that is passed to the swap device.
Default value: 16384 (16K)
-
vm-maxvas
(maxvas)
-
The maximum amount of virtual address space
that any user process can have at any point in time.
Default value: 1073741824 (1G)
-
vm-maxwire
(maxwire)
-
The maximum amount of memory that any user process can wire.
(Paging activity generally increases as the amount of wired memory
increases.)
Default value: 16777216 (16M)
-
vm-max-wrpgio-kluster
(vm_max_wrpgio_kluster)
-
The largest page-out (write) cluster that is passed to the swap device.
Default value: 32768 (32K)
-
vm-min-kernel-address
-
The base address of the kernel's virtual address space.
It can be set to either Oxffffffff80000000 or Oxfffffffe00000000, which
sets the size of the kernel's virtual address space to either two
gigabytes or eight gigabytes, respectively. It might be necessary to
increase the kernel's virtual address space on very large system (for
example, on systems with several gigabytes of physical memory and
several thousand large processes).
Default value: 18446744071562067968
-
vm-page-free-min
(vm_page_free_min)
-
The free list's low watermark. Once the free list falls below
this value, the system starts physical memory reclamation.
Default value: 20 (pages)
-
vm-page-free-optimal
(vm_page_free_optimal)
-
The task swapper's queue to start outswapping tasks. If the
average number of pages on the free list over a five-second period
stays at or below this value, the system reduces the demand for
physical memory by swapping out entire tasks.
Default value: 74 (pages)
-
vm-page-free-reserved
(vm_page_free_reserved)
-
The number of physical pages in the free list that are reserved
for the kernel to use when memory is low. Once the free list falls
below this value, the system prevents user processes from allocating
physical pages.
Default value: 10 (pages)
-
vm-page-free-target
(vm_page_free_target)
-
The free list's high watermark. Once the system starts physical
memory reclamation, it continues doing so until the free list is
increased to this value.
Default value: 128 (pages)
-
vm-page-lock-count
-
The size of lock array used to synchronize access to vm_page structures.
Instead of locking each page structure, the virtual address is used to
hash into the lock array. Need to adjust only if excessive lock
contention is suspected.
Default value: 64
-
vm-page-prewrite-target
-
The maximum number of pages that the vm subsystem will prewrite to swap
space in anticipation of running out of memory.
The pages that are prewritten are the least recently referenced pages.
This helps the vm subsystem recover more gracefully when physical memory
becomes exhausted.
Default value: 256 (pages)
-
vm-segmentation
(segmentation)
-
A Boolean flag indicating whether shared regions of user address space
should also share the page tables that map those shared regions.
Default value: 1 (yes)
-
vm-segment-cache-max
(u_seg_cache_max)
-
The number of text segments that can be cached in the segment cache.
(Only applies if segmentation is enabled.)
The segment cache is used by the VM subsystem to cache inactive
executables and shared libraries.
I/O delays for repeated executions and reloads are eliminated because
objects in the segment cache can be accessed simply by mapping a
pagetable entry.
Reducing the number of segments in the segment cache can
free a considerable amount of memory and can thus help to reduce
paging overhead.
(The size of each segment depends on the text size of the particular
executable or shared library that is being cached.)
Default value: 50 (segments)
-
vm-syncswapbuffers
(syncswapbuffers)
-
The total number of synchronous I/O requests that can be
outstanding to the swap partitions at any point in time.
Synchronous swap requests are used for page-in and task swapping.
Default value: 128 (synchronous I/O requests)
-
vm-syswiredpercent
(syswiredpercent)
-
The maximum percentage of managed physical memory that can be wired in
the system at any point in time.
(Paging activity generally increases as the amount of wired memory
increases.)
Default value: 80 (percent)
-
vm-ubcbuffers
(ubcbuffers)
-
The total number of I/O requests that all file systems can have
outstanding at any point in time.
Default value: 256
-
vm-ubcdirtypercent
(ubcdirtypercent)
-
The maximum percentage of UBC pages that are allowed to be dirty
(modified) at any point in time. If more than this number of UBC
pages are dirty, the UBC starts writing the dirty pages.
Default value: 10 (percent)
-
vm-ubcpagesteal
(ubcpagesteal)
-
The minimum number of file pages that the UBC must have for a file
before the UBC will steal pages from a file to satisfy that file's
own demand.
Default value: 24 (file pages)
-
vm-ubcseqpercent
(ubcseqpercent)
-
The maximum percentage of managed physical memory that the UBC can
use to cache a single file before it starts recognizing sequential
access and stealing the least recently used pages of that file to
satisfy that file's demands.
Default value: 10 (percent)
-
vm-ubcseqstartpercent
(ubcseqstartpercent)
-
The minimum
percentage of managed physical memory
that must be in the UBC before it will recognize sequential file access
and steal the least recently used pages of a file to satisfy that
file's demands.
Default value: 50 (percent)
-
vm-vpagemax
(vpagemax)
-
The 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).
Note that 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 had individual protection
attributes. Thus, if it is likely that the stack region for a
multithreaded task will exceed 16K pages, the value of the
vm-vpagemax
parameter must be adjusted upward.
Default value: 16384 (16K)
-
vm-zone_size
(zone_size)
-
The virtual size of the kernel's zone submap expressed as a
percentage of physical memory.
Many of the dynamically allocated kernel data structures
are allocated out of zones that are located in the zone submap.
Default value: 0 (percent)
B.22 XPR Subsystem Attributes
-
nxprbufs
(nxprbufs)
-
The number of contiguous buffers allocated for XPR.
Each of these buffers is of type
struct xprbuf,
which occupies 56 bytes.
The buffers are not allocated if XPR is not turned on.
XPR is a facility that performs silent tracing using a circular
buffer. XPR logs the pointer to a
printf
string and up to 6 arguments, along with a timestamp and cpuinfo
(for multiprocessor systems), into a circular buffer.
The kernel compile-time flag
XPR_DEBUG
determines whether the XPR debugging facility is included in
compilations. By default, the XPR facility is not included in
compilations.
Default value: 0 (zero)
-
xprflags
(xprflags)
-
A bit mask in which each bit controls a message type.
A type of message is enabled or disabled by setting the
value of the corresponding bit in the
xprflags
mask to 1 or 0.
The mapping of the bits in the
xprflags
mask and the different message types are as follows:
Bit Position
|
Message Type
|
0
|
XPR_SYSCALLS
|
1
|
XPR_TRAPS
|
2
|
XPR_SCHED
|
5
|
XPR_TCP
|
6
|
XPR_PMAP
|
7
|
XPR_VM_MAP
|
8
|
XPR_VM_OBJECT
|
9
|
XPR_VM_OBJECT_CACHE
|
10
|
XPR_VM_PAGE
|
11
|
XPR_VM_PAGEOUT
|
12
|
XPR_MEMORY_OBJECT
|
13
|
XPR_VM_FAULT
|
14
|
XPR_INODE_PAGER
|
15
|
XPR_INODE_PAGER_DATA
|
16
|
XPR_TTY
|
17
|
XPR_BIO
|
18
|
XPR_INTR
|
19
|
XPR_CACHE
|
20
|
XPR_NFS
|
21
|
XPR_SIGNAL
|
See the description of the
nxprbufs
attribute for information about the XPR facility.