DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
Configuring kernel parameters

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:

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:

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 (NLOG-1). 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 MSGSEG*MSGSSZ 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 MSGSEG*MSGSSZ.

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:

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 XSDSEGS*XSDSLOTS. 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(TM) math coprocessor is installed. Because of design defects in early versions of the Intel® 80387(TM) 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(TM) or Pentium(TM) 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(TM) 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