Kernel parameters that you can change using configure
The tunable parameters that you can change using
configure(ADM)
are grouped into two sets of categories depending on whether they
affect system performance or configuration:
Performance tunables
Configuration tunables
Buffer management
The following tunables may be used to tune the performance of
your system's buffers.
NBUF-
The amount of memory in 1KB units
allocated for use by the system buffer cache at boot time.
The system buffer cache
is memory used as a temporary storage area between the disk and user
address space when reading to or writing from mounted filesystems.
The size of the buffer cache is displayed
as ``kernel i/o bufs'' at boot time,
and is recorded along with other
configuration information in /usr/adm/messages.
The hit rate on the buffer cache increases as the number of buffers
is increased.
Cache hits reduce the number of disk accesses
and thus may improve overall disk I/O performance.
Study the sar -b report for statistics
about the cache hit rate on your system.
See
``Increasing disk I/O throughput by increasing the buffer cache size''
for more information.
The maximum possible number of buffers is 450000.
NBUF can be set in any of the following ways:
-
If NBUF is set to the default of 0,
the system calculates the size of the buffer cache automatically,
allocating 10% of memory for disk buffers.
For SCO OpenServer Release 5.0.5 and earlier releases,
the maximum autoallocation of buffers
is about 6MB (6000 1k buffers);
you must set NBUF manually
to allocate a larger buffer cache,
even for systems with 64MB or more of memory
where this allocation is less than 10% of memory.
For SCO OpenServer Release 5.0.6 and later releases,
the operating system will automatically allocate
10% of memory for the system buffer cache
-
If NBUF has a value of 1-9,
this number (multiplied by 10)
is the percentage of physical memory
that will be allocated to the buffer cache.
For example, if NBUF is set to 3,
30% of physical memory is allocated for buffers.
-
If NBUF has a value between 24 and 450000,
this is the absolute number of buffers
in the system cache.
On HTFS, EAFS, AFS,
and S51K filesystems,
each buffer uses 1KB of memory
plus a 72-byte header.
If you are using the DTFS filesystem, buffers are
multiples of 512 bytes in size ranging from
512 bytes to 4KB. The number of buffers in the
buffer cache is not constant in this case and varies with demand.
Having an unnecessarily large buffer cache
can degrade system performance because too little
space is available for executing processes;
having an unnecessarily small buffer cache
can degrade disk I/O performance.
For optimal performance, you should adjust the number of hash queues
(NHBUF) when you adjust the value of NBUF.
NHBUF-
Specifies how many hash queues to allocate
for buffers in the buffer cache.
The hash queues optimize the search for a buffer
by avoiding a sequential search
through the entire list of buffers.
See
``Tuning the number of buffer cache hash queues''.
This value of NHBUF must be a power of 2
ranging between 32 and 524288.
Each hash queue costs 8 bytes of memory.
The default value of NHBUF is 0
which automatically sets the number
of hash queues
to the power of 2 that is greater than or
equal to twice the value of NBUF.
This reduces the likelihood of contention
between processors wanting to access the same hash queue.
On releases prior to SCO OpenServer Release 5.0.6,
setting NHBUF to 0
creates a hash buffer queue whose size equals
the power of 2 that is greater than
or equal to half the value of NBUF.
NMPBUF-
Number of 4KB pages of memory used for the following types
of multiphysical buffers:
-
16KB scatter-gather buffers (also known as
cluster buffers). These are used to
perform transfers of contiguous blocks of data on disk
to and from the buffer cache.
-
4KB transfer buffers. These are
used as intermediate storage when moving data between memory
and peripheral devices with controllers
that cannot access memory above 16MB.
-
1KB copy request buffers. These are
used as intermediate storage when moving data between
the buffer cache and peripheral devices with controllers
that cannot access memory above 16MB.
NMPBUF should be set larger than 40
for machines with more than 16MB of memory and many users.
The maximum possible size is 512.
If the value of NMPBUF is set to zero (default),
the kernel determines a suitable
value automatically at startup.
In this case, it sets the value of NMPBUF
in the range 40 to 64 depending on the amount of available memory.
PLOWBUFS-
Amount of buffer cache that is contained in
the first 16MB of RAM,
which is the range that 24-bit devices
such as those on an ISA bus
can access directly.
Values of 100 and lower represent
the percentage of the buffer cache allocated below 16MB.
Values greater than 100 cause the system
to allocate that exact number of disk buffers below 16MB.
For SCO OpenServer Release 5.0.6 and later releases,
this value is never ignored
as it may be for SCO OpenServer Release 5.0.5 and earlier releases.
PLOWBUFS should be set as high as possible
if the controllers for the peripheral storage devices
(such as the disks)
in your system use 24-bit addressing
so they cannot perform DMA to memory
above the first 16MB.
If buffers are not available below the 16MB boundary,
the operating system will use copy operations
to and from the higher memory ranges
(see NMPBUF),
which can degrade disk I/O and system performance.
To ascertain if a SCSI host adapter
can access memory above the first 16MB
(32-bit addressing), consult the
initialization message for its driver in the
/usr/adm/messages file.
If the string fts=
is followed by one or
more characters including a d
, the controller is
32-bit, otherwise it is 24-bit.
See
``Positioning the buffer cache in memory''.
The default value of PLOWBUFS is 30
for systems with less than 64MB of memory configured.
For SCO OpenServer Release 5.0.6 and later releases,
PLOWBUFS is set to 1024 on systems
with 64MB or more memory configured at installation time.
If all disk controllers configured on the system
use 24-bit addressing,
(and your system has more than 16MB of RAM)
set PLOWBUFS to 100
so that the entire buffer cache falls below the 16MB boundary.
If both 24-bit and 32-bit disk controllers are configured,
set PLOWBUFS to an appropriate number over 100
to allocate an appropriate portion of the buffer cache
under the 16MB boundary.
For example, if the buffer cache contains 3000 buffers
and PLOWBUFS is set to 500,
500 buffers will be allocated below the 16MB boundary
and 2500 buffers will be allocated above the 16MB boundary.
PUTBUFSZ-
Specifies the size of the circular buffer, putbuf,
that contains a copy of
the last PUTBUFSZ characters
written to the console by the operating system.
The contents of putbuf can be viewed by using
crash(ADM).
The default and minimum value is 2000; the maximum is 10000.
NHINODE-
Specifies the size of the inode hash table which must be a power of 2.
It ranges from 64 to 8192 with a default value of 128 on most systems.
On SCO OpenServer Release 5.0.6 and later releases,
NHINODE is set to 1024 on database installations
for systems with 48MB of memory or more at installation time.
BDFLUSHR-
Specifies the rate for the bdflush
daemon process to run, checking the need to
write the filesystem buffers to the disk.
The range is 1 to 300 seconds.
The value of this parameter must be chosen
in conjunction with the value of NAUTOUP.
For example, it is nonsensical to set NAUTOUP
to 10 and BDFLUSHR to 100;
some buffers would be marked delayed-write
10 seconds after they were written,
but would not be written to disk for another 90 seconds.
Choose the values for these two parameters
considering how long a delayed-write buffer
may have to wait to be written to disk
and how much disk-writing activity will occur
each time bdflush becomes active.
For example, if both NAUTOUP
and BDFLUSHR are set to 40,
buffers are 40 to 80 seconds old when written to disk
and the system will sustain a large amount
of disk-writing activity every 40 seconds.
If NAUTOUP is set to 10
and BDFLUSHR is set to 40,
buffers are 10 to 50 seconds old when written to disk
and the system sustains a large amount
of disk-writing activity every 40 seconds.
Setting NAUTOUP to 40 and BDFLUSHR to 10
means that buffers are 40 to 50 seconds old when written,
but the system sustains a smaller amount
of disk writing activity every 10 seconds.
With this setting, however,
the system may devote more overhead time
to searching the block lists.
WARNING:
If the system crashes with BDFLUSHR set to 300 (its maximum possible
value) then 150 seconds worth of data, on average, will be lost from the
buffer cache. A high value of BDFLUSHR may radically improve
disk I/O performance but will do so at the risk of significant
data loss.
NAUTOUP-
Specifies the buffer age in seconds for automatic filesystem updates.
A system buffer is written to disk when
the bdflush daemon process runs and
the buffer has been scheduled for a write for
NAUTOUP seconds or more.
This means that not all write buffers will be flushed each time
bdflush runs. This enables a process to perform multiple writes
to a buffer but fewer actual writes to a disk. This is because
bdflush will sometimes run less than NAUTOUP seconds
after certain buffers were written to. These will remain scheduled to be
written until the next appropriate flush.
The ratio of
writes between physical memory to kernel buffer and buffer to disk will
tend to increase (that is, fewer actual disk writes) if the ratio between
the flush rate BDFLUSHR and NAUTOUP decreases.
Specifying a smaller limit increases system reliability by writing the
buffers to disk more frequently and decreases system performance.
Specifying a larger limit increases system performance at the expense
of reliability. The default value is 10, and ranges between 0
(flush all buffers regardless of how short a time they were scheduled to
be written) and 60 seconds.
Buffer cache free list
NOTE:
This parameter is not tunable using
configure(ADM);
you must use the
idtune(ADM)
command instead as described in
``Using idtune to reallocate kernel resources''.
BFREEMIN-
Sets a lower limit on the number of buffers that must
remain in the free list. This allows some (possibly useful) blocks
to remain on the free list even when a large file is accessed.
If only BFREEMIN buffers remain on the freelist,
a process requiring one or more buffers
may sleep until more become available.
The value of BFREEMIN is usually set to the default
and minimum value of 0; the maximum value is 100.
You may see an improvement in the buffer cache read and write
hit rates reported by sar -b
if you set the value of BFREEMIN
to the smaller of NBUF/10 or 100.
An improvement in performance is most likely on
machines that are used primarily for media
copying, uucp transfers, and running
other applications that are both quasi-single-user
and access many files.
Processes and paging
The tunable parameters GPGSLO and
GPGSHI determine how often the paging
daemon vhand runs.
vhand can only run at clock ticks
and it is responsible
for freeing up memory when needed by processes.
It uses a ``least recently used'' algorithm as an approximation
of process working sets, and it writes out pages to disk
that are not modified during a defined time period.
GPGSLO-
Specifies the low value of free memory pages at which
vhand will start stealing pages from processes.
Normally, GPGSLO is tuned to a value
that is about 1/16 of pageable memory.
Increase the value to make the vhand daemon
more likely to become active;
decrease the value to make it less likely to become active.
The value of GPGSLO must be a positive whole number
greater than or equal to 0 and less than or equal to 100000.
(In earlier releases, the maximum value is 200).
Its value must also be less than that of GPGSHI.
The default value for GPGSLO
on systems with less than 64MB memory at installation time
is 25.
For SCO OpenServer Release 5.0.6 and later,
values betwewen 200 and 2000 are selected
for systems with more than 64MB memory at installation time;
see
``Autotuning''.
If GPGSLO is too large a fraction of the pages that
are available, vhand becomes active before memory
starts to become really short and useful pages may be paged out.
If GPGSLO is too small,
the system may run out of memory altogether between clock ticks.
If this happens, the swapper daemon sched runs to
swap whole processes out to disk.
GPGSHI-
Specifies the high value of free memory pages at
which vhand will stop stealing pages from processes.
Normally GPGSHI is set to a value
that is about 1/10 of pageable memory.
The value of GPGSHI must be a positive whole number
greater than or equal to 1 and less than or equal to 100000.
(In earlier releases, the maximum value is 200).
Its value must also be greater than that of GPGSLO.
The default value for GPGSLO
on systems with less than 64MB memory at installation time
is 40.
For SCO OpenServer Release 5.0.6 and later,
values between 600 and 6000 are selected
for systems with more than 64MB memory at installation time;
see
``Autotuning''.
If the interval between GPGSLO and GPGSHI
is too small, there will be a tendency for vhand to
be constantly active once the number of free pages first
drops below GPGSLO. If the interval is too large,
a large amount of disk activity is required to write pages
to disk.
MINARMEM-
Threshold value that specifies the minimum amount (in pages)
of physical memory that is available for the text and data
segments of user processes.
(Available physical memory for user processes is shown by the command
od -d availrmem in
crash(ADM).)
The default and minimum is 25; the maximum is 40 pages.
If there is ever insufficient physical memory available to allocate to
STREAMS or kernel memory allocated resources,
an application may fail or hang, and the
system will display the following message on the console:
CONFIG: routine - n resident pages wanted
If you see this message, it is likely that your system has insufficient
RAM.
MINASMEM-
Threshold value that specifies the minimum size (in pages) that
available virtual memory is allowed to reach.
(Available virtual memory is shown by the command
od -d availsmem in
crash(ADM).)
More swap space or physical memory must be added to the system if it runs out
of virtual memory. In the case of adding swap space, this can
be done dynamically using swap-to-file. If system performance
is still poor because it is swapping or paging out excessively,
add more RAM to the system.
The default and minimum is 25; the maximum is 40 pages.
If this limit is exceeded,
the following message is displayed on the console:
CONFIG: swapdel - Total swap area too small (MINASMEM = number exceeded)
If there is ever insufficient physical memory available to allocate to
STREAMS or kernel memory allocated resources,
an application may fail or hang, and the
system will display the following message on the console:
CONFIG: routine - n swappable pages wanted
If you see this message, increasing the value of MINASMEM
may help but it is more likely that your system has insufficient
memory or swap space.
MAXSLICE-
Specifies in clock ticks the maximum time slice for user processes.
After a process executes for its allocated time slice,
that process is suspended.
The operating system then dispatches the highest priority process from the
run queue, and
allocates to it MAXSLICE clock ticks.
MAXSLICE must be a value from 25 to 100; the default is 100.
SPTMAP-
Determines the size of the map entry array used
for managing kernel virtual address space.
The default value is 200; the minimum and maximum values
are 100 and 500.
Memory management parameters
NOTE:
This group of parameters is not tunable using
configure(ADM);
you must use the
idtune(ADM)
command instead as described in
``Using idtune to reallocate kernel resources''.
MAXSC-
Specifies the maximum number of pages that
are swapped out in a single operation.
The default and maximum value is 8.
MAXFC-
Maximum number of pages that are
added to the free list in a single operation.
The default and maximum value is 8.
TTYs
The following parameters control various data structure sizes
and other limits in character device drivers
provided with the operating system.
NCLIST-
Specifies the number of character list buffers to allocate.
Each buffer contains up to 64 bytes of data.
The buffers are dynamically linked to form input and output
queues for the non-STREAMS terminal lines
and other slow-speed devices.
The average number of buffers needed for
each terminal is in the range of 5 to 10.
Each entry (buffer space plus header) costs 72 bytes.
When full, input and output characters dealing with terminals are lost,
although echoing continues,
and the following message is displayed on the console:
CONFIG: Out of clists (NCLIST = number exceeded)
The default and minimum value of NCLIST is 120;
the maximum is 16640.
On SCO OpenServer Release 5.0.6 and later releases,
NCLIST is set to 512 when a database installation is selected
on a system with more than 48MB of memory configured.
For users logged in over serial lines with speeds up to 9600 bps,
the recommended setting of NCLIST is 10 times the maximum
number of users that you expect will log in simultaneously.
You should also increase the TTHOG parameter; this
controls the effective maximum size of the raw input queue for fast
serial lines.
Since each buffer is 64 bytes in size, you should
increase NCLIST by TTHOG divided by 64 and
multiplied by the number of fast serial lines, as shown in
the following table:
TTHOG value
|
Increase NCLIST by
|
2048
|
32 number of fast serial lines
|
4096
|
64 number of fast serial lines
|
8192
|
128 number of fast serial lines
|
TTHOG-
Sets the effective size of the raw queue of the tty driver.
The default and minimum value is 256 bytes; the maximum is 8192 bytes.
Increasing the value of this parameter allows more unprocessed
characters to be retained in the tty buffer, which may prevent
input characters from being lost if the system is extremely busy.
If you are using sustained data transfer rates greater than
9600 bps, you should increase TTHOG to 2048 or 4096
bytes depending on the demands of the application.
You must also increase the value of NCLIST
to match the increased value of TTHOG.
For SCO OpenServer Release 5.0.6 and later releases,
TTHOG is set to 4096 for database installations
on systems with 48MB or more configured at installation time.
Name cache
The following parameter controls the performance of the namei cache
that is used to speed the translation of filenames to inode numbers.
CACHEENTS-
Number of name components in the namei cache.
It must have a value of between 1 and 4096; the default is 800.
The recommended value for diverse workgroups is to
make CACHEENTS large, roughly three
times the maximum grown size of the in-core inode table
reported by sar -v.
Name cache parameters
NOTE:
The following parameter is not tunable using
configure(ADM);
you must use the
idtune(ADM)
command instead as described in
``Using idtune to reallocate kernel resources''.
HASHQS-
Number of hash queues for the namei cache.
HASHQS must be a number between 1
and 8191; the default is 267.
The recommended value for diverse
workgroups is at least
one third the size of CACHEENTS.
Asynchronous I/O
The asynchronous I/O feature supports asynchronous
I/O operations on raw disk partitions. It must be added to the
kernel using the mkdev aio command for these parameters
to have any effect (see
aio(HW)
for more information).
NAIOPROC-
Size of the AIO process table that determines
the number of processes that may be simultaneously performing
asynchronous I/O.
The range of values is between 1 and 500; the default is 5.
On SCO OpenServer Release 5.0.6 and later releases,
NAIOPROC is set to 50
when the user selects a database installation.
When the AIO process table overflows,
the following message is displayed on the console:
CONFIG: aio_memlock - AIO process table overflow (NAIOPROC = number exceeded)
NAIOREQ-
Size of the AIO request table that determines
the maximum number of pending asynchronous I/O requests.
The range of values is between 5 and 4000; the default is 120.
For SCO OpenServer Release 5.0.6 and later releases,
NAIOREQ is set to 400 for database installations
on systems with 48MB or more configured at installation time.
When the AIO request table overflows,
the following message is displayed on the console:
CONFIG: aio_breakup - AIO request table overflow (NAIOREQ = number exceeded)
NAIOBUF-
Size of the AIO buffer table that determines
number of asynchronous I/O buffers.
This should always be set to the same value as NAIOREQ.
When the AIO buffer table overflows,
the following message is displayed on the console:
CONFIG: aio_breakup - AIO buffer table overflow (NAIOBUF = number exceeded)
NAIOHBUF-
Number of internal asynchronous hash queues.
The range of values is between 1 and 100; the default is 25.
On SCO OpenServer Release 5.0.6 and later releases,
NAIOHBUF is set to 100 for database installations
on systems with 48MB or more configured at installation time.
NAIOREQPP-
Maximum number of asynchronous I/O requests that a single
process can have pending.
The default value is 120,
meaning that a single process can
potentially exhaust all asynchronous I/O resources.
The range of values is between 30 and 4000.
For SCO OpenServer Release 5.0.6 and later releases,
NAIOREQPP is set to 400 for database installations
on systems with 48MB or more configured at installation time.
NAIOLOCKTBL-
Number of entries in the internal kernel table for asynchronous
I/O lock permissions.
The range of values is between 5 and 500;
the default is 10.
For SCO OpenServer Release 5.0.6 and later releases,
NAIOLOCKTBL is set to 50 for database installations
on systems with 48MB or more configured at installation time.
If there are many entries in the /usr/lib/aiomemlock file,
this value may need to be increased.
When the AIO lock table overflows,
the following message is displayed on the console:
CONFIG: aio_setlockauth - AIO lock table overflow (NAIOLOCKTBL = number exceeded)
Virtual disks
The following parameters control the performance of
virtual disk arrays if these are configured on your system.
VDUNITMAX-
The maximum number of virtual disks that can be configured.
This parameter defines the size of several structures used by the
vd driver. On systems where the number of virtual disks
is likely to be constant, set VDUNITMAX equal to the number of
virtual disks.
The default value is 100; the minimum and maximum values are 5 and 256.
VDJOBS-
The maximum number of virtual disk jobs that can exist in the global job pool.
The default value is 200; the minimum and maximum values are 100
and 400.
VDUNITJOBS-
The maximum number of job structures and piece pool entries for
each virtual disk in the system. A piece pool entry contains a
piece structure for each disk piece in a virtual disk array.
For example, a piece pool entry for a three-piece RAID 5
array contains three piece structures.
Each job structure is 88 bytes in size.
Each piece structure is 84 bytes in size.
The default value of VDUNITJOBS is 100;
the minimum and maximum values are 50 and 200.
VDHASHMAX-
The size of the hash table used for protecting the integrity of
data during read, modify, and write operations.
Each hash table entry requires 24 bytes of memory.
The value of VDHASHMAX
must be a power of 2; the minimum and maximum values are 512 and 8192.
The default value is 1024.
VDASYNCPARITY-
Controls whether writes to the parity device
on RAID 4 and 5 devices are performed asynchronously.
The default is 1 (write asynchronously). If set to 0,
the system waits for all I/O to complete.
VDASYNCWRITES-
Controls whether writes to the other half of a
RAID 1 device (mirror) are
performed asynchronously.
The default is 1 (write asynchronously).
If set to 0, the system waits for I/O on both halves of a mirror
to complete.
VDASYNCMAX-
Sets the maximum number of outstanding asynchronous writes for
RAID 1, 4 and 5 configurations in asynchronous mode (that is,
VDASYNCWRITES or VDASYNCPARITY are set to 1).
The default value is 20; the minimum and maximum values are 20 and 64.
VDWRITEBACK-
Enables write-back caching.
This increases the throughput of a virtual disk
by writing data asynchronously during the last phase of a
read-modify-write job.
The default value is 0 (do not use write-back caching). If set to 1,
write-back caching is enabled.
WARNING:
Enabling write-back caching may compromise the
integrity of the data if the system crashes.
Use this feature only at your own discretion.
VDRPT-
The interval in seconds between error conditions being reported.
The default value is 3600; the minimum and maximum values are 0
and 86400 seconds. If set to 0, errors are only reported when detected.
User and group configuration
The following parameters control resources that are specific to
individual users or groups.
NOFILES-
Specifies the maximum number of open files for each process.
Unless an application package recommends
that NOFILES be changed,
the default setting should be left unaltered.
The Bourne, C and Korn shells all use
three file table entries: standard input,
standard output, and standard error
(file descriptors 0, 1, and 2 respectively).
This leaves the value of NOFILES minus 3 as the number
of other open files available for each process.
If a process requires up to three more than this number, then
the standard files must be closed.
This practice is not recommended and
must be used with caution, if at all.
If the configured value of NOFILES
is greater than the maximum (11000)
or less than the minimum (60),
the configured value is set to the default (110),
and a message is sent to the console.
Unless an application package recommends
that NOFILES be changed,
the default setting should be left as is.
ULIMIT-
Specifies in 512-byte blocks the size of the largest file
that an ordinary user can write.
The default value is 2097151;
that is, the largest file an ordinary user can write
is approximately 1GB (one gigabyte).
A lower limit can be enforced on users by changing the value of
ULIMIT in the file /etc/default/login; see
login(M).
The ULIMIT parameter does not apply to reads;
any user can read a file of any size.
MAXUP-
Specifies how many concurrent user processes
an ordinary user is allowed to run.
The entry is in the range of 15 to 16000,
with a default value of 100 processes.
This value should be at least 10% smaller
than the value of MAX_PROC
(or the maximum grown size of the process table reported by
sar -v if MAX_PROC is set to 0).
This value is determined by the user identification number, not
by the terminal.
For example, the more people that are logged in on the same
user identification, the quicker the default limit would be reached.
MAXUMEM-
Maximum size of a process' virtual address space
in 4096-byte pages.
The allowed range of values is between 2560 and 1048576.
By convention, the default value of 524287 pages is
interpreted as 786432 pages (3GB).
If you decrease this value and a process will
not start due to lack of memory, its parent shell
will report one of the
messages: ``Too big'' or ``Not enough space''.
For SCO OpenServer Release 5.0.6 and later releases,
MAXUMEM is set to 1048576 for database installations
on systems with 48MB or more configured at installation time.
NGROUPS-
Maximum number of simultaneous supplemental process groups per
process.
The value of NGROUPS can be set to any integral value
from 0 to 128; the default value is 8.
NGROUPS maps to the POSIX.1 runtime value
NGROUPS_MAX for which the minimum value allowed by
FIPS is 8. To retain FIPS and
XPG4 compliance, you must restrict the value of
NGROUPS to be greater than or equal to 8.
CMASK-
The default mask used by
umask(S)
for file creation. By default this is zero, meaning
that the umask is not set in the kernel.
The range of values is between 0 and 0777. See
chmod(C)and
umask(C)
for an explanation of setting absolute mode file permissions.
CHOWN_RES-
Controls system-wide chown kernel privilege
(formally known as the chown kernel authorization)
on all filesystems that set the POSIX.1
constant _POSIX_CHOWN_RESTRICTED (also defined in
X/Open CAE Specification, System Interfaces and Headers,
Issue 4, 1992). See
getconf(C)
for more information.
If set, CHOWN_RES prevents all users except
root from changing ownership of files on all
filesystems that support _POSIX_CHOWN_RESTRICTED.
The default value of CHOWN_RES is 0 (not set)
which causes the restriction not to be enforced.
You can also use the chown kernel privilege
to control users' privilege to change file ownership.
If chown kernel privilege is removed, some
XPG4-conformant applications may fail if they use
interprocess communication (semaphores, shared memory, and
message passing).
You should only set chown kernel privilege in this way
if you require C2-level security.
IOV_MAX-
Maximum size of the I/O vector (struct iovec) array
(number of non-contiguous buffers) that can be used by the
readv(S)
(scatter read) and
writev(S)
(gather write) system calls.
The default value is 512; the minimum and maximum values
are 16 and 1024.
Security
The security profile (High, Improved, Traditional, or Low)
can be selected as discussed in
``Changing the system security profile''.
The security parameters can be set to
modify the behavior of the security features
and to ensure compatibility with utilities
that expect traditional UNIX system behavior.
Each of these parameters can be set to 0 (off)
or 1 (on).
SECLUID-
Controls the enforcement of login user ID (LUID).
Under the SCO OpenServer implementation of
C2 requirements, every process must
have an LUID.
This means that processes that set
UIDs or GIDs,
such as the printer scheduler (lpsched),
must have an LUID set when
started at system startup in /etc/rc2.d/S80lp.
This can cause problems with setuid programs.
When the security default is set to a profile other than ``High'',
enforcement of LUID
is relaxed and setuid programs
do not require an LUID to run.
SECSTOPIO-
Controls whether the kernel implements the
stopio(S)
system call.
When SECSTOPIO is set to 1,
the kernel acts on
stopio(S)
calls;
when it is set to 0,
the kernel ignores stopio calls.
The stopio system call
is used under C2 to ensure that a device
is not held open by another process after it is reallocated.
This means that other processes attempting to access the same
device may be killed.
stopio(S)
is used by
initcond(ADM),
which is called by
getty(M)
immediately before starting user interaction
and by
init(M)
immediately after an interactive session has terminated.
SECCLEARID-
Controls the clearing of SUID/SGID bits
when a file is written.
Under C2 requirements,
the set user ID (SUID or setuid)
and set group ID (SGID or setgid)
bits on files must be cleared (removed) when a file is written.
This prevents someone from
replacing the contents of a setuid binary.
This can cause problems with programs
that do not expect this behavior.
In the ``Low'' security profile,
SUID and SGID bits
are not cleared when files are written.
The following table summarizes
the initial settings of the security parameters
for each security profile.
Parameter
|
Low
|
Traditional
|
Improved
|
High
|
SECLUID
|
off
|
off
|
off
|
on
|
SECSTOPIO
|
off
|
on
|
on
|
on
|
SECCLEARID
|
off
|
on
|
on
|
on
|
TTY and console configuration
The multiscreen parameters determine
the number of console multiscreens
that can run simultaneously on the system.
Each multiscreen requires about 4 to 8KB of memory
depending on the number of lines (25 or 43).
If you need to save memory
and are not using multiscreens heavily,
set NSCRN to 4 and SCRNMEM to 16 or 32.
When you do this, you must also
disable(C)
multiscreens 5-12 (tty5 to tty12)
or getty will generate warning messages
when the system goes to multiuser mode.
NSCRN and SCRNMEM can be set
to smaller values than this if you are sure that you need
fewer multiscreens.
TBLNK-
Controls the console screen saver feature
on VGA consoles (only).
It is the number of seconds before the screen blanks
to save wear on the monitor.
TBLNK can have a value of 0 to 32767,
with 0 (default) disabling screen blanking.
NSCRN-
The number of console multiscreens. A value of 0 configures
this value at boot time.
The maximum value is 12.
SCRNMEM-
Number of 1024-byte blocks used for console screen memory.
A value of 0 (the default) configures
this value at boot time based on the amount of memory installed.
The range of values is between 9 and 128.
Each multiscreen uses from 4 to 8KB of memory,
so when using a non-zero value for this parameter, make
SCRNMEM equal to 4 or 8 times the value of NSCRN.
NSPTTYS-
Number of pseudo-ttys on the system.
The default value is 16; the minimum and maximum values are 1 and 256.
Each NSPTTYS requires 246 bytes of memory.
This parameter should only
be altered using the mkdev ptty command
which also creates the additional device nodes.
Pseudo-ttys are not related to console multiscreens;
they are used for features such as serial multiscreens
mscreen(M), for shell windows, and for remote logins.
NUMXT-
Number of layers a subdevice can configure to support bitmapped
display devices such as the BLIT or the
AT&T 5620 and 730 terminals. The range of values is between 1 and
32; the default is 3.
When this number is exceeded,
the following message is displayed on the console:
CONFIG: xtinit - Cannot allocate xt link buffers (NUMXT = number exceeded)
Note that the xt driver must have been linked into the
kernel using the mkdev layers command or
the Hardware/Kernel Manager in order to use these
display devices.
NUMSXT-
Number of shell layers
(shl(C))
a subdevice can configure. The range of values is between 1 and 32; the default
is 6.
Note that the sxt driver must have been linked into the
kernel using the mkdev shl command or
the Hardware/Kernel Manager in order to use shell layers.
Filesystem configuration
The following parameters control the configuration of different
filesystem types.
MAXVDEPTH-
Maximum number of undeletable (versioned) files
allowed in the DTFS and HTFS filesystems.
A value of 0 disables versioning; the maximum value is 65535.
This parameter can be overridden when the filesystem is mounted.
MINVTIME-
Minimum time before a file is made undeletable
(versioned) in the DTFS and HTFS filesystems.
If set to 0, a file
is always versioned (as long as MAXVDEPTH is greater
than 0); if set to a value greater than 0, the file is versioned
after it has existed for that number of seconds. The maximum
value is 32767.
This parameter can be overridden when the filesystem is mounted.
ROOTCHKPT-
If set to 0, disable
checkpointing
in a root HTFS filesystem;
if set to 1 (default), enable checkpointing.
ROOTLOG-
If set to 0, disable
transaction intent logging
in a root HTFS filesystem;
if set to 1 (default), enable logging.
ROOTSYNC-
If set to 0 (default), disable file synchronization
on close on a root DTFS filesystem;
if set to 1, enable synchronization on close.
ROOTNOCOMP-
If set to 1, disable compression in a root
DTFS filesystem; if set to 0 (default), enable compression.
ROOTMAXVDEPTH-
Maximum number of undeletable (versioned) files on
a root DTFS or HTFS filesystem.
A value of 0 disables versioning.
ROOTMINVTIME-
Minimum time before a file is made undeletable (versioned) on
a root DTFS or HTFS filesystem.
If set to 0, a file
is always versioned (as long as ROOTMAXVDEPTH is greater
than 0); if set to a value greater than 0, the file is versioned
after it has existed for that number of seconds.
DOSNMOUNT-
Maximum number of mounted DOS filesystems.
The range of values is between 0 and 25; the default is 4.
DOSNINODE-
Maximum number of open inodes for DOS filesystems.
The range of values is between 0 and 300; the default is 40.
Table limits
The following parameters control the allocation of memory to
dynamic kernel tables.
TBLPAGES-
The maximum number of pages of memory for dynamic tables.
The range of values is between 10 and 10000; the default is 0 which means
that the kernel configures the value based on the amount of
memory available at system startup.
TBLDMAPAGES-
The maximum number of pages of ``dmaable'' memory for dynamic tables.
The range of values is between 10 and 1000 pages; the default is 100.
TBLLIMIT-
The percentage of TBLPAGES or TBLDMAPAGES to
which a single table may grow.
The range of values is between 10 and 100%; the default is 70.
TBLSYSLIMIT-
The percentage of memory allowed for dynamic tables if TBLPAGES is
set to 0. The range of values is between 10 and 90%; the default is 25.
TBLMAP-
The size of the dynamic table virtual space allocation map. The range of
values is between 50 (default) and 500.
The following parameters control the maximum grown sizes of
dynamic kernel tables. If set to 0, the maximum possible size
defaults to the value shown by
getconf(C)
provided that sufficient TBLPAGES of memory have
been allocated.
For example, the command getconf KERNEL_MOUNT_MAX
displays the maximum possible size of the mount table.
MAX_DISK-
The maximum number of disk drives attached to the system.
When the Diskinfo table overflows,
the following message is displayed on the console:
CONFIG: dk_name - Diskinfo table overflow (MAX_DISK = number exceeded)
The minimum and maximum configurable values of MAX_DISK
are 1 and 1024; the default value of 0 means that the kernel
determines the number of disk drives dynamically.
MAX_INODE-
Specifies the maximum number of inode table entries that can be
allocated.
Each table entry represents an in-core inode that is an active file
such as a current directory, an open file, or a mount point.
Pipes, clone drivers, sockets, semaphores and shared data
also use inodes, although they are not associated with a disk file.
The number of entries used depends on the number of opened files.
The minimum and maximum configurable values of MAX_INODE
are 100 and 64000; the default value of 0 means that the in-core
inode table grows dynamically.
Each open file requires an inode entry in the in-core inode table.
If the inode table is too small,
a message similar to the following is displayed on the console:
CONFIG: routine - Inode table overflow (MAX_INODE = number exceeded)
When the inode table overflows, the specific request is refused.
Although not fatal to the system, inode table overflow may
damage the operation of various spoolers, daemons, the mailer,
and other important utilities.
Abnormal results and missing data files are a common result.
If the system consistently displays this error message,
use sar -v to evaluate whether your
system needs tuning. The inod-sz
value shows
the number of inode table entries being used and
the number of entries that have been allocated for use by the table.
MAX_PROC-
Specifies the maximum number of process table entries
that can be allocated.
Each table entry represents an active process.
The number of entries depends on
the number of terminal lines available
and the number of processes spawned by each user.
If the process table is full,
the following message appears on the console and
in the file /usr/adm/messages:
CONFIG: newproc - Process table overflow (MAX_PROC = number exceeded)
The minimum and maximum values of MAX_PROC
that can be set are 50 and 16000;
the default value for non-database installations is 0,
which means that the process table
grows dynamically.
For database installations on SCO OpenServer Release 5.0.6 and later releases,
MAX_PROC is set to 10000
on systems with more than 48MB of memory
configured at installation time.
The proc-sz
values shown by
sar -v show how many process table entries are being used
compared to those that have been dynamically allocated.
MAX_FILE-
Specifies the maximum number of open file table entries
that can be allocated. Each entry represents an open file.
The minimum and maximum values of MAX_FILE
that can be set are 100 and 64000;
the default value is 0 which means that the file table
grows dynamically.
When the file table overflows, the following warning message is displayed
on the system console:
CONFIG: falloc - File table overflow (MAX_FILE = number exceeded)
This parameter does not control the number of open files per
process; see the description of NOFILES parameter.
MAX_REGION-
Specifies the maximum number of region table entries that can be
allocated.
Most processes have three regions: text, data, and stack.
Additional regions are needed for each shared memory segment and
shared library (text and data) attached.
However, the region table entry for the text
of a ``shared text'' program is shared
by all processes executing that program.
Each shared-memory segment attached to one or
more processes uses another region table entry.
The minimum and maximum values of MAX_REGION
that can be set are 500 and 160000;
the default value is 0 which means that the region table
grows dynamically.
If you do configure MAX_REGION, as a general rule
you should set its value to slightly more than three
times greater than MAX_PROC.
When the region table overflows,
the following message is displayed on the console:
CONFIG: allocreg - Region table overflow (MAX_REGION = number exceeded)
MAX_MOUNT-
Specifies the maximum number of mount table entries that can
be allocated. Each entry represents a mounted filesystem.
The root filesystem (/) is always
the first entry. When full, the
mount(S)
system call returns the EBUSY error code.
The minimum and maximum values of MAX_MOUNT that can be
configured are 4 and 4096;
the default value of 0 means that the kernel grows
the size of the mount table dynamically.
MAX_FLCKREC-
Specifies the maximum number of lock table entries that can be allocated.
This determines the number of file regions
that can be locked by the system.
The ``lock-sz'' value reported by sar -v
shows the number of entries that are being used
in comparison to the number that have been allocated.
The minimum and maximum values of MAX_FLCKREC
that can be configured are 50 and 16000;
the default value is 0 which means that the kernel grows
the size of the record lock table dynamically according
to the needs of the applications running on your system.
STREAMS
STREAMS is a facility for
UNIX system communication services. It supports the implementation of services
ranging from complete networking protocol suites (such as TCP/IP and
IPX/SPX) to individual device drivers.
STREAMS defines standard interfaces for character
I/O. The associated mechanism is simple and open-ended, consisting
of a set of system calls, kernel resources and kernel routines.
STREAMS use system resources
that are limited by values defined in
kernel configuration modules.
Depending on the demand that you and other system users
place on these resources, your system could run out of
STREAMS resources if you do not first reset the
allocations in the kernel configuration modules.
Running out of some STREAMS resources
(such as those controlled by the NSTREAM parameter)
generates kernel configuration error messages.
STREAMS message buffers are dynamically allocated from
memory up to a limit set by the value of the
kernel parameter NSTRPAGES.
This parameter sets the maximum number of pages of physical
memory that can be dynamically allocated for use by STREAMS.
Before changing the STREAMS
parameters NSTREAM or NSTRPAGES,
you should check the current usage of STREAMS resources
using the strstat command of the
crash(ADM)
utility or
netstat(TC)
with the -m option.
The following tunable parameters are associated with
STREAMS processing:
NSTREAM-
Number of stream head
(stdata and estdata) data structures configured.
One of each structure is needed for each stream opened,
including both streams currently open from user processes
and streams linked under multiplexers.
The allowed range of values is between 1 and 32768; the default is 64.
The recommended configuration value is highly application-dependent,
but a value of 256 usually suffices on a computer
for running a single transport provider with moderate traffic.
For SCO OpenServer Release 5.0.6 and later releases,
NSTREAM is set to 4352 for database installations
on systems with 48MB or more configured at installation time.
On Open Desktop, each X client also uses a pair of stdata and
a pair of estdata structures.
You should set NSTREAM to at least 256
on systems that are running X clients.
When the number of stream head structures is exceeded,
the following message is displayed on the console:
CONFIG: stropen - Out of streams (NSTREAM = n exceeded)
NSTRPAGES-
The maximum number of pages of virtual memory
that can be allocated dynamically
for use by STREAMS message buffers.
The allowed range of values is
between 0 and 8000 pages;
the default value is 500.
For SCO OpenServer Release 5.0.6 and later releases,
this is automatically configured to higher values
on systems with 64MB or more
configured at installation time; see
``Autotuning''.
If NSTRPAGES pages of virtual memory are not available
when STREAMS are initialized at startup, the system displays
the following message on the console for each STREAMS
table that is affected:
CONFIG: strinit - Cannot alloc STREAMS name table \
(NSTRPAGES = n too big)
If more buffers are requested than there are available pages of
physical memory to create them, the system displays the following
message on the console:
CONFIG: allocb - Out of streams memory (NSTRPAGES = n exceeded)
Extra memory is allocated temporarily for high priority buffers only.
The system will then try to reduce STREAMS memory usage
until it is less than NSTRPAGES.
NOTE:
Memory used by STREAMS for buffers is fully
dynamic; memory can be freed as well as allocated.
The value of NSTRPAGES does not affect the
size of the kernel at system startup although the size of the
kernel will grow and shrink over time as pages of memory
are allocated for use by STREAMS and subsequently
released.
STRSPLITFRAC-
Sets the percentage of NSTRPAGES above which the system
tries to create buffers by splitting larger buffers that are on
the free list. Below this limit, the system tries to allocate
new pages of memory to create the buffers.
STRSPLITFRAC can range between between 50 and 100
(percent); the default is 80. If you set STRSPLITFRAC
lower than this, the system will use less memory for STREAMS
but the memory that is used will tend to become fragmented and
the kernel will require more CPU time to manage it.
STRMSGSZ-
Maximum allowable size of the data portion
of any STREAMS message.
This should usually be set just large enough to accommodate
the maximum packet size restrictions
of the configured STREAMS modules.
If it is larger than necessary, a single
write or putmsg can consume
an inordinate number of message headers.
The range of values is between
4096 and 524288; the default value of 16384
is sufficient for existing applications.
STRMAXBLK-
Maximum size of a STREAMS message buffer.
By default, this parameter has a value of 524288,
but it can be set to any value that is a power of two
between 4096 and 524288 (4KB to 512KB).
In most cases, this parameter should not be modified.
This parameter was introduced
for the benefit of NIC drivers
based on the older LLI network driver interface standard.
Systems that are using at least one LLI driver
must set STRMAXBLK to 4096
so that the driver's assumptions about
physical memory contiguity of STREAMS buffers are not violated.
A typical symptom of this problem
is that small data transfers work,
but larger ones appear to hang.
The hangs most typically happen at about 2900 bytes into a transfer.
You can distinguish LLI from newer drivers
by the output of the ifconfig -a command.
NICs that are labeled as "net0", "net1" and so on
are using MDI or UDI drivers.
NICs that are labeled with a name related to
the NIC driver (like xyz0),
are using LLI drivers.
Note that all NIC drivers
provided with current releases of SCO OpenServer
are MDI or UDI-based.
STRMAXBLK does not need to be tuned from its default value
unless a third-party NIC driver is in use,
and then only if it is an _old_ 3rd-party NIC driver,
based on the LLI driver standard (superseded in 1995).
A third-party networking protocol stack
could also require STRMAXBLK to be tuned,
although no specific examples of this are currently known.
NUMSP-
Determines the number of STREAMS
pipe devices (/dev/spx, see
spx(HW))
supported by the system.
The maximum and minimum values are 1 and 256.
The default value is 64 for most systems.
For SCO OpenServer Release 5.0.6 and later releases,
NUMSP is set to 256 for database installations
on systems with 48MB or more
configured at installation time.
NUMTIM-
Maximum number of
timod(M)
STREAMS modules that can
be pushed by the Transport Layer Interface (TLI) or
the X/Open Transport Interface (XTI) onto
stream heads.
This parameter limits the number of streams that can be opened that
use this module.
The default value is 16 but various transport providers (for example,
protocol stacks such as
TCP, LMU, or NETBIOS) may require
its value to be set to 32, 64, or 128.
The maximum allowable value is 8192.
For SCO OpenServer Release 5.0.6 and later releases,
NUMTIM is set to 1104 for database installations
on systems with 48MB or more configured at installation time.
You do not normally need to modify this parameter.
NUMTRW-
Maximum number of
timod(M)
STREAMS modules that can
be pushed by TLI or XTI onto
stream heads in order that the streams will accept
read(S)
and
write(S)
system calls.
This parameter effectively limits the number of streams onto which
the module can be pushed.
The default value is 16 but various transport providers (for example,
protocol stacks such as
TCP, LMU, or NETBIOS) may require
its value to be set to 32, 64, or 128.
The maximum allowable value is 8192.
NUMTRW is set to 1104 for database installations
on systems with 48MB or more configured at installation time.
You do not normally need to modify this parameter unless
the total number of TLI or XTI connections
is likely to exceed NUMTRW.
See
``STREAMS parameters''
for a description of the STREAMS parameters that can
only be tuned using
idtune(ADM).
STREAMS parameters
NOTE:
This group of parameters is not tunable using
configure(ADM);
you must use the
idtune(ADM)
command instead as described in
``Using idtune to reallocate kernel resources''.
NMUXLINK-
Number of stream multiplexer links configured.
One link structure is required for each active multiplexer link
(STREAMS I_LINK ioctl)
in networking protocol stacks such as those used to implement
TCP/IP and NFS.
Each PPP link also requires such a structure.
The number needed is application-dependent;
the default value is 192.
The minimum and maximum configurable values are 1 and 4096.
NSTRPUSH-
Maximum number of modules
that may be pushed onto a stream.
This prevents an errant user process from consuming all of the
available queues on a single stream.
The default possible value is 9. In practice,
applications usually push at most four modules onto a stream.
NLOG-
Number of minor devices to be configured for the log driver;
the active minor devices are 0 through (NLOG1).
The only value of 3 services an error logger (strerr)
and a trace command (strace), with one left over for
miscellaneous usage.
STRCTLSZ-
Maximum allowable size of the control portion of
any STREAMS message.
The control portion of a putmsg message is
not subject to the constraints of the
minimum/maximum packet size,
so the value entered here is the only way
of providing a limit for the control part of a message.
The only possible value of 1024 is more than sufficient for existing
applications.
Message queues
The following tunable parameters are associated with interprocess
communication message queues:
MSGMAP-
Specifies the number of entries in the memory map for messages.
An entry in the message map table says that
MSGSEG / MSGMAP memory
segments are free at a particular address.
MSGMAP measures how fragmented you expect your map to get.
Its value can be small if you always send a few large messages,
or it can be large if you send a lot of small messages.
The suggested value for MSGMAP is approximately
half the value of MSGSEG;
this allocates two message segments per map entry.
If the value of MSGMAP is set equal to
MSGSEG, long messages may become totally fragmented with
their component segments being randomly scattered across the map.
Do not set MSGMAP to a value greater
than that of MSGSEG.
The range of configurable values is from 4 to 32768;
the default value is 512.
Each entry costs 8 bytes.
MSGMAX-
Maximum size of a message in bytes.
The minimum value is 128, the default value is 8192 bytes,
and the maximum possible size the kernel can process is 32767
bytes.
MSGMNB-
Maximum number of bytes of memory that all the messages in any one
message queue can occupy.
The default value is 8192; the maximum and minimum values
are 128 bytes and 65532 bytes.
MSGSEG-
Number of MSGSSZ segments of memory
allocated at kernel startup for holding messages.
Therefore a total of MSGSEGMSGSSZ
bytes of memory are allocated for messages.
NOTE:
The amount of memory allocated for messages
must not exceed 128KB.
If MSGSEG is set at 0, then the kernel will
auto-configure the values of MSGSEG, MSGMAX,
and MSGMNB. For most memory configurations,
MSGSEG is set to 1024, and MSGMAX and
MSGMNB are both set to MSGSEGMSGSSZ.
The IPC_NOWAIT flag can be passed into many
of the msg system calls. If this flag is passed,
then the system calls will fail immediately
if there is no space for a message.
If this flag is not passed,
then the system calls will sleep until
there is room for the message.
To determine adequate values for each of the parameters, compute
the maximum size and number of messages desired, and allocate that
amount of space.
For example, if the system will have at most
40 messages of 1KB each pending,
then MSGTQL should be set to 40,
and MSGSEG is computed as:
-
40 messages of 1K each = 40KB total message space.
-
Divide total message space by MSGSSZ to get MSGSEG.
If MSGSSZ=8 bytes, then MSGSEG = 401024/8 = 5120.
The default value of MSGSEG is 1024; the minimum
and maximum values are 32 and 32768.
See
``Message queue parameters''
for a description of the message queue parameters that can
only be tuned using
idtune(ADM).
Message queue parameters
The following parameters are associated with System V
IPC message queues.
NOTE:
This group of parameters is not tunable using
configure(ADM);
you must use the
idtune(ADM)
command instead as described in
``Using idtune to reallocate kernel resources''.
MSGMNI-
Maximum number of different message queues allowed system-wide.
The default value of MSGTQL is 50; the minimum and
maximum values are 1 and 1024.
You should not normally need to adjust the value of this parameter.
MSGTQL-
Number of system message headers that can be stored by the kernel;
that is, the maximum number of unread messages at any given time.
Each header costs 12 bytes.
The default value of MSGTQL is 1024; the minimum and
maximum values are 32 and 16383.
You should not normally need to adjust the value of this parameter
unless an application needs a large number of messages.
MSGSSZ-
Size in bytes of the memory segment used for
storing a message in a message queue.
A message that is shorter than a whole number multiple of memory
segments will waste some bytes.
For example, an 18-byte message requires three
message segments if MSGSSZ is set to 8 bytes.
In this case, 6 bytes of memory are unused, and unusable by other
messages.
The product of the values of MSGSSZ and MSGSEG
determines the total amount of data that can be present in all
message queues on a system. This product should not be greater than
128KB.
The default value of MSGSSZ is 8 bytes; the minimum
and maximum values are 4 bytes and 4096 bytes.
The configured value of MSGSSZ must be divisible by 4.
You should not normally need to adjust the value of this parameter.
Event queues
The following parameters control the configuration of the
event queues.
EVQUEUES-
Maximum number of open event queues systemwide.
Each EVQUEUES costs 88 + (2 EVDEVSPERQ)
bytes of memory.
The range of values is between 1 and 256; the default is 8.
EVDEVS-
Maximum number of devices attached to event queues systemwide.
Each EVDEVS costs 48 bytes of memory.
The range of values is between 1 and 256; the default is 16.
When the event table overflows,
the following message is displayed on the console:
CONFIG: event - Event table full (EVDEVS = number exceeded)
EVDEVSPERQ-
Maximum number of devices for each event queue.
The range of values is between 1 and 16; the default is 3.
When the event channel overflows,
the following message is displayed on the console:
CONFIG: event - Event channel full (EVDEVSPERQ = number exceeded)
Semaphores
The following tunable parameters are associated with interprocess
communication semaphores:
SEMMAP-
Size of the control map used to manage semaphore sets.
The default and minimum value is 10; the maximum is 8192.
For SCO OpenServer Release 5.0.6 and later releases,
SEMMAP is set to 8192 for database installations
on systems with 48MB or more configured at installation time.
Each entry costs 8 bytes.
SEMMAP is set to 8192 for database installations
on systems with 48MB or more configured at installation time.
SEMMNI-
Number of semaphore identifiers in the kernel.
This is the number of unique semaphore sets that can be
active at any given time.
The default and minimum value is 10; the maximum is 8192.
Each entry costs 32 bytes.
For SCO OpenServer Release 5.0.6 and later releases,
SEMMNI is set to 8192 for database installations
on systems with 48MB or more configured at installation time.
SEMMNU-
Number of semaphore undo structures in the system.
The size is equal to 8(SEMUME + 2) bytes.
See
``Semaphore parameters''
for a definition of SEMUME.
The range of values is between 10 and 100; the default is 30.
SEMMNU is set to 100 for database installations
on systems with 48MB or more configured at installation time.
XSEMMAX-
Size of the XENIX® semaphore table
that determines the maximum number of
XENIX semaphores allowed systemwide.
The minimum value for XSEMMAX is 20, the maximum value
is 90, and the default value is 60.
When the XENIX semaphore table overflows,
the following message is displayed on the console:
CONFIG: xsem_alloc - XENIX semaphore table overflow (XSEMMAX = number exceeded)
See
``Semaphore parameters''
for a description of the semaphore parameters that can
only be tuned using
idtune(ADM).
Semaphore parameters
NOTE:
This group of parameters is not tunable using
configure(ADM);
you must use the
idtune(ADM)
command instead as described in
``Using idtune to reallocate kernel resources''.
SEM_NSEMS_MAX-
Maximum number of POSIX.1b semaphores
available for use on the system
(provided by the SUDS library).
The default value is 100; the minimum and maximum configurable
values are 1 and 255 respectively.
The following parameters are associated with System V
IPC semaphores only:
SEMMSL-
Maximum number of semaphores for each semaphore identifier.
The default and minimum value is 25; the maximum value is 150.
For SCO OpenServer Release 5.0.6 and later releases,
SEMMSL is set to 150 for database installations
on systems with 48MB or more configured at installation time.
SEMOPM-
Maximum number of semaphore operations that can be
executed for each
semop(S)
call.
The default value is 10; each entry costs 8 bytes.
SEMUME-
Number of undo entries for each process.
The default value is 10.
SEMVMX-
Maximum value a semaphore can have.
The default value is 32767.
SEMAEM-
Maximum value for adjustment on exit,
alias semadj.
This value is used when a semaphore value becomes greater
than or equal to the absolute value of semop,
unless the program has set its own value.
The default value is 16384.
SEMMNS-
Number of semaphores in the system.
The default and minimum value is 60; the maximum value is 8192.
Each entry costs 8 bytes.
For SCO OpenServer Release 5.0.6 and later releases,
SEMMNS is set to 8192 for database installations
on systems with 48MB or more configured at installation time.
Shared memory
The following tunable parameters are associated with interprocess
communication shared memory:
SHMMAX-
Maximum shared-memory segment size.
The range of values is between 131072 and 2147483647 bytes;
the default value is 524288 bytes.
By convention, the maximum value of 2147483647 bytes is
interpreted as 3221225472 bytes (3GB).
On SCO OpenServer Release 5.0.6 and later releases,
SHMMAX is set to 2147483647 for database installations
on systems with 48MB or more configured at installation time.
SHMMIN-
Minimum shared-memory segment size.
The default value is 1 byte.
XSDSEGS-
Maximum number of XENIX
special shared-data segments allowed system wide.
The range of values is between 1 and 150; the default is 25.
When the XENIX shared data table overflows,
the following message is displayed on the console:
CONFIG: xsd_alloc - XENIX shared data table overflow (XSDSEGS = number exceeded)
XSDSLOTS-
Number of slots for each XENIX shared data segment.
The maximum number of XENIX special shared data segment
attachments system wide is XSDSEGSXSDSLOTS.
The range of values is between 1 and 10; the default is 3.
See
``Shared memory parameters''
for a description of the shared memory parameters that can
only be tuned using
idtune(ADM).
Shared memory parameters
NOTE:
The following parameter is not tunable using
configure(ADM);
you must use the
idtune(ADM)
command instead as described in
``Using idtune to reallocate kernel resources''.
SHMMNI-
Maximum number of shared-memory identifiers systemwide.
The minimum and default value is 100; the maximum is 8192.
Each entry costs 52 bytes.
Miscellaneous system parameters
The following parameters control the size of the
configuration string buffer, and the size of the
kernel profiler symbol table.
MAX_CFGSIZE-
Maximum size of configuration information saved by the
tab(HW)
driver. This is the maximum size of information
available using /dev/string/cfg as described on the
string(M)
manual page. If this limit is exceeded,
the following message is displayed on the console:
CONFIG: string: Configuration buffer full (MAX_CFGSIZE = number exceeded)
MAX_CFGSIZE ranges from 256 to 32768 bytes; the default is 1024
bytes.
PRFMAX-
Sets the maximum number of text symbols that the kernel profiler,
/dev/prf, can properly process. The range of values is between
2048 and 8192; the default is 4500. See
profiler(ADM)
for information about the kernel profiler.
System parameters
NOTE:
This group of parameters is not tunable using
configure(ADM);
you must use the
idtune(ADM)
command instead as described in
``Using idtune to reallocate kernel resources''.
NODE-
System name. The value of NODE
must not be greater than eight characters.
The default value is ``scosysv''.
TIMEZONE-
Specifies the timezone in
units of minutes different from Greenwich Mean Time
(GMT). Note that the value specifies the system
default timezone and not the value of the TZ environment variable.
TIMEZONE can have a value from -1440 (east of GMT) to 1440
(west of GMT); the default is 480.
DSTFLAG-
Specifies the dstflag described for the
ctime(S)
system call. A value of 1 indicates Daylight Savings Time applies locally,
zero is used otherwise.
KDBSYMSIZE-
Size of the kernel debugger symbol table in bytes.
(This parameter is only useful if a debugger is linked into the kernel.)
It must have a value of between 50000 and 500000; the default is 300000.
NCPYRIGHT-
Defines the maximum number of strings used to store
some vendor driver copyright messages that may be
displayed on the console when the system is booted.
Modifying this parameter is unlikely to affect
the display of most copyright messages.
Miscellaneous device drivers and hardware parameters
The following parameters control the configuration of various
device drivers and hardware behavior.
CTBUFSIZE-
Size of the tape buffer in kilobytes.
This static buffer is allocated by the QIC-02 cartridge tape device
driver (ct) when it is initialized at system startup.
This parameter should have a value of between 32 and 256.
Set this parameter to 0 if the ct driver is linked into
the kernel but you either do not have or do not use a cartridge tape drive.
The following are values that this parameter can take in
various circumstances:
32KB-
bare minimum: this is insufficient to stream
64KB-
minimum to allow streaming (good for systems with little memory)
or little tape use (if tape I/O performance is not critical)
96KB-
reduce to this at first if the default uses too much memory
128KB-
default: this offers good tradeoff performance between I/O
and memory
192KB-
increase to this at first if the default provides poor I/O
performance
256KB-
maximum size
NOTE:
The SCSI tape device driver (Stp) allocates a
statically configured 128KB buffer for each device which is
not controlled by this parameter.
All SCSI tape drives including SCSI
cartridge tape drives use the Stp driver.
SDSKOUT-
Maximum number of simultaneous requests that can be queued
for each SCSI disk.
The SCSI disk driver (Sdsk) will sleep if no
request blocks are available.
The default value of this parameter is 4;
the minimum and maximum values are 1 and 256.
SDSKOUT is set to 64 for database installations
on systems with 48MB or more configured at installation time.
You should set SDSKOUT higher if the
-S option to
sar(ADM)
(or
mpsar(ADM)
for SMP) reports that the system is
running out of request blocks.
DMAEXCL-
Specifies whether simultaneous DMA requests are allowed.
Some computers have DMA chips that malfunction when
more than one allocated channel is used simultaneously.
DMAEXCL is set to 0 by default to allow simultaneous
DMA on multiple channels. Set its value to 1 if this causes
a problem.
KBTYPE-
Determines the logical character protocol used
between the keyboard and the keyboard driver.
This tunable is set by default to 0 for XT
scancodes and is recommended; a value of 1 specifies AT scancodes
which are recognized by the console driver
but not by the X server or by DOS emulators.
All AT-compatible keyboards
support both modes.
VGA_PLASMA-
Set to 1 if an IBM® PS/2®
model P70 or P75 VGA
plasma display is present; set to 0 (default) if not.
NSHINTR-
Maximum number of devices sharing the same interrupt vector.
This has a default value of 8; the minimum and maximum values
are 2 and 20.
You should not normally need to modify this parameter.
DO387CR3-
Controls the setting of high-order bits of Control Register 3
(CR3) when an 80387 math coprocessor is installed.
Because of design defects in early versions of
the Intel® 80387 chip (B1 stepping),
this math coprocessor may not operate correctly in some
computers. The problem causes a CPU to hang when
DMA, paging, or coprocessor accesses occur.
You can work around this problem by changing the DO387CR3
parameter from the default value of 0 (switched off) to 1.
WARNING:
Do not set this parameter to 1 on 80486 or Pentium machines.
DOWPCR0-
If set, the kernel uses the write protection bit in Control
Register 0 (CR0) to enable write protection in kernel mode.
The default value is 1 which sets this parameter.
This parameter is effectively disabled on machines which contain one
or more 80386 CPUs which do not support this feature.
MODE_SELECT-
No effect. Mode-select checking on parallel (printer) ports
can be adjusted on a per-printer basis using the
pa_tune[] array defined in <sys/paconf.h> and
documented in the file /etc/conf/pack.d/pa/space.c.
Hardware and device driver parameters
NOTE:
This group of parameters is not tunable using
configure(ADM);
you must use the
idtune(ADM)
command instead as described in
``Using idtune to reallocate kernel resources''.
NAHACCB-
Number of mailboxes available for the Adaptec 154X/164X
host adapter driver to talk to other Adaptec hardware.
The higher the number, the less likely
it is that the driver has to sleep.
It is not normally necessary to modify this parameter.
NEMAP-
Specifies the maximum number of
mapchan(M)
I/O translation mappings that can be in effect at the
same time.
The default value of this parameter is 10.
NKDVTTY-
Number of virtual terminals (8) supported by
the console keyboard driver.
Administrators should not modify this parameter.
Boot load extension parameters
NOTE:
This group of parameters is not tunable using
configure(ADM);
you must use the
idtune(ADM)
command instead as described in
``Using idtune to reallocate kernel resources''.
EXTRA_NDEV-
Number of extra device slots in fmodsw[],
io_init[], and io...[].
It defines the number of slots reserved in the device
driver tables for Boot Time Loadable Drivers (BTLDs).
EXTRA_NEVENT-
Number of extra event slots. It defines the number
of slots reserved in the event driver tables for BTLDs.
EXTRA_NFILSYS-
Number of extra types of filesystem. It defines the number
of extra types of filesystem that can be loaded using
BTLDs.
MAX_BDEV-
Maximum number of block devices (bdevcnt
is at least this value). It defines the minimum number of entries
in bdevsw[], the block device switch table.
MAX_CDEV-
Maximum number of character devices (cdevcnt is at
least this value). It defines the minimum number of entries
in cdevsw[], the character device switch table.
LAN Manager Client Filesystem parameters
NOTE:
The LAN Manager Client Filesystem (LMCFS)
adds several kernel parameters to the mtune file
that are not tunable using
configure(ADM);
you must use the
idtune(ADM)
command instead as described in
``Using idtune to reallocate kernel resources''.
LMCFS_BUF_SZ-
Determines the maximum amount of data that LMCFS
can transmit or receive in a single network packet.
The default value is 4096 bytes.
LMCFS_LMINUM-
Controls the number of allocatable inodes. The default value is
150; the maximum value is 600. Set this value higher if users
have many LMCFS files open simultaneously.
LMCFS_NUM_BUF-
Sets the number of server message
block (SMB) data buffers used by LMCFS.
The default value is 256; the maximum value is 8192. The
size of each buffer is determined by LMCFS_BUF_SZ.
LMCFS_NUM_REQ-
Constrains the number of simultaneous SMB
requests that can be made on the network.
The default value is 64; the maximum value is 1024.
This parameter should be set to at least one quarter of the value of
LMCFS_NUM_BUF.
Next topic:
Examining and changing configuration-dependent values
Previous topic:
Using idtune to reallocate kernel resources
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003