kcusage.1m (2012 03)
k
kcusage(1M) kcusage(1M)
running even when the demands on the system change dramatically.
Many of these system limits can be set quite high without increasing the size of the kernel. Previously,
nproc and nkthread allocated static tables in the kernel. Since HP-UX 11.22, both are limits on how
big the dynamic tables are allowed to grow.
See the man page for each of these kernel tunables to learn what memory penalty, if any, each has when
it is raised.
Inter Process Protection
Many of the tunables control the amount of any resource allocated to an individual process. If all of the
processes were allowed to grow without bound, the finite size of the system itself would cause system calls
allocating resource to fail.
The tunables that kcusage reports on that are used to protect processes from one another are:
• maxdsiz/maxdsiz_64bit
• maxfiles_lim
• maxssiz/maxssiz_64bit
• maxtsiz/maxtsiz_64bit
• maxuprc
• max_thread_proc
The "-t" option in kcusage will show the top five users of each of these resources.
In general, setting the size of these tunables depends on how much you trust the processes on your sys-
tem. Systems running well tested and/or mission critical software can have these limits set quite high.
This will reduce administration costs in diagnosing problems with tunables set too low.
On systems where software is being developed, or where large numbers of users have access, these limits
should be kept as low as is practical.
Controlling System Performance
kcusage monitors the sizes of the dynamic file cache and the inode cache. Sizing these too small slows
performance by increasing cache miss rates. Sizing these too large slows performance by increasing the
swapping of processes.
Controlling kernel behavior
kcusage does not monitor any tunables that control system behavior.
kcusage gives data useful in setting 25 kernel tunables. The way the usage information for each kernel
tunable is interpreted is slightly different for each tunable. The following is a description for how to inter-
pret each kernel tunables kcusage output.
filecache_max
filecache_max and filecache_min control the size of the dynamic file cache for the system. These two
tunables give the maximum and minimum amount of memory, in percent of system memory, that is used
to buffer file IO.
Because the kernel tunable is in percent of system memory, the usage is also reported as a percentage of
system memory. The usage value for filecache_max is the percent of system memory used for the file
cache. The system resizes the file cache based on how much swapping the system is doing as well as the
file cache miss rate.
For most kernel tunables, having the usage near the limit usually means that you want to raise the limit.
The usage data for filecache_max may mean the opposite. If your system usage reads lots of file data,
but does so in a way that file records are not visited repeatedly, then a large file cache may not speed up
performance. The kernel, seeing a high file cache miss rate, may dynamically enlarge the file cache when
doing so will not do much good. As the file cache gets larger there is less room for
running programs and swapping increases.
If you see that the size of the file cache is equal to filecache_max, you may want to LOWER
filecache_max. Some people recommend lowering filecache_max to insure the dynamic file cache is at
most 400 Megabytes. Others recommend raising filecache_max until the file cache miss rate is under
5%.
Many data base applications manage their own buffering. Lowering the limit on the file cache size can
make these programs run faster.
HP-UX 11i Version 3: March 2012 − 3 − Hewlett-Packard Company 3