Dynamically Tunable Parameters in HP-UX 11i

3
dynamically tunable kernel parameters in hp-ux 11i
abstract
This white paper discusses dynamically tunable or configurable kernel parameters
(known as “tunables”) in HP-UX 11i, and the mechanisms that are available to manage
them. The paper explains tunable parameters, illustrates how to determine which
parameters are dynamic, and discusses the ways to change those parameters. The
paper also includes an explanation of the persistence of changed parameters.
introduction
There are many different users of HP-UX, with as many different needs to optimize their
systems for the highest utilization of system resources. In order to satisfy the diverse
needs of this broad customer base, the HP-UX kernel provides a variety of configurable
parameters that allow users to customize the behavior of the kernel for specific
environments. Starting with HP-UX 11i, it is possible to modify some of those parameters
and see the effects immediately. HP-UX users now have the ability to tune their systems
without sacrificing system availability to do so.
what are
tunables?
Such things as the system hostname, the current time of day, and the identification of the
boot device could all be considered kernel parameters in the broadest sense of the term.
Seen that broadly, there are many different variables, parameters, and settings that affect
HP-UX kernel behavior, and also many different mechanisms by which they are
managed.
The term “tunables,” however, refers to the set of parameters that historically are
compiled into the kernel image. This mechanism dates back to the earliest flavors of
UNIX
®
in the mid-70s. So do many of the tunables themselves, such as nproc,
maxdsiz, and semmns. Historically, the set of tunables was defined by a file called
master, and the per-system customized values of those tunables were stored in a file
called either system or dfile. A program called config(1M) would read those files
and use them to generate a file of C code (conf.c), which was then compiled and linked
with the kernel code. The resulting customized kernel could then be booted and used.
Over the years, this process of configuring HP-UX tunables has changed only
superficially. The master file has been replaced with a directory full of files. The SAM
program and mk_kernel(1M) command present simpler interfaces to this process.
The kmtune(1M) command, part of the Dynamically Loadable Kernel Modules (DLKM)
infrastructure, allows for multiple kernel modules to be configured using this process,
each with their own master files, system files, and resulting binary image. But throughout
all of these enhancements, the bottom line has been the same: the kernel must be rebuilt
and rebooted in order for the tunable value changes to take effect.
what is changing?
Many HP-UX users are greatly concerned with High Availability. Businesses can incur
significant losses when a critical system goes down for an hour. In many customer
environments, it is often difficult to justify rebooting a system in order to tune it.
In the HP-UX development labs, we are working in several areas to address this
problem:
We are making it possible to change tunable values without rebooting.
We are making the kernel more intelligent about adapting to different workloads—
tuning itself, in essence. This reduces the number of tunables that must be manually
changed.
We are improving the documentation of the remaining tunables, to take the guesswork
out of the tuning process.
All three of these efforts are ongoing, starting in HP-UX 11i and expected to continue
over the next several releases. At the same time, we will be ensuring that HP-UX system
administrators can continue to tune systems using the mechanisms with which they are
familiar, if they so choose.