[Return to Library] [Contents] [Previous Chapter] [Next Section] [Index] [Help]


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.


[Return to Library] [Contents] [Previous Chapter] [Next Section] [Index] [Help]


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.


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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.


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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.


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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.

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)


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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.


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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.)


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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.


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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)


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


B.13    Pseudoterminal Subsystem

nptys
The number of STREAMS-based pseudoterminals (ptys) that can be active on your system.

Default value: 255


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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:

See proplistd(8) for details. No effect on performance.

Default value: 0


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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)


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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:

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)


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Index] [Help]


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)


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Index] [Help]


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.