When to change system parameters
Among the cases in which you may need to
reallocate system resources are:
-
You install additional physical memory and thus have greater
memory resources to allocate.
-
Persistent error messages are being displayed on the system
console indicating that certain resources are used up,
such as inodes or table entries.
-
The system response time is consistently slow, indicating that
other resources are too constrained for the system to operate
efficiently (as when too little physical memory is installed).
-
Resource usage needs to be tailored to meet the needs of a particular
application.
If one of your performance goals is to reduce the size of the kernel
(usually because the system is paging excessively or swapping),
first concentrate on tunable parameters that control large structures.
The following table lists a small subset of kernel tunable parameters and
indicates the cost (or benefit) in bytes of
incrementing (or decrementing) each parameter by a single unit.
For example, if NCLIST set to 200,
this requires 200 times 72 bytes,
or approximately 14KB of memory.
Parameter
|
Number of bytes per unit parameter
|
CACHEENTS
|
44
|
HASHQS
|
8
|
NBUF
|
1024
|
NCLIST
|
72 (64 for the buffer + 8 for the header)
|
NHBUF
|
8
|
NHINODE
|
8
|
NMPBUF
|
4096
|
MSGMAP
|
8
|
NSPTTYS
|
246
|
NSTREAM
|
80 (52 for the STREAMS header + 28 for the extended header)
|
MAX_INODE
|
76 per entry added to the dynamic in-core inode table
|
MAX_PROC
|
344 per entry added to the dynamic process table
|
MAX_FILE
|
12 per entry added to the dynamic open file table
|
MAX_REGION
|
76 per entry added to the dynamic region table
|
Dynamic table parameters such as MAX_PROC
usually have their values set to 0. Each table grows in size
as more entries are needed. The memory overhead of the
grown kernel table can be found by multiplying the values shown
above by the number of table entries reported by
getconf(C).
For example, from the Korn shell, you can find the current size
of the process table by entering:
let nproc=344$(getconf KERNEL_PROC)
echo "Size of process table in bytes is $nproc"
Specialized applications often require the reallocation of
key system resources for optimum performance.
For example, users with large databases may find that
they need more System V semaphores than are
currently allocated.
Most of the tunable parameters discussed in this chapter
are defined in /etc/conf/cf.d/mtune. This file lists the default,
maximum and minimum values respectively of each of the parameters specified.
To change the values of specific tunable parameters manually, use the
appropriate tool as described in
``Configuration tools''.
Next topic:
Configuration tools
Previous topic:
Autotuning
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003