HP-UX Reference (11i v3 07/02) - 5 Miscellaneous Topics (vol 9)

a
aio_monitor_run_sec(5) aio_monitor_run_sec(5)
(Tunable Kernel Parameters)
NAME
aio_monitor_run_sec - frequency of AIO thread pool monitor execution (in seconds)
VALUES
Failsafe
2
Default
30
Allowed values
1-60
Recommended values
1-60
DESCRIPTION
The implementation of POSIX AIO on HP-UX uses kernel threads to perform I/Os to filesystems that do
not directly support true asynchronous I/O. (This distinction is transparent to the user.) The kernel
threads are organized into worker-thread pools (called AIO thread pools) created on a per-process basis.
Since a thread pool mechanism for I/Os introduces a variety of trade-offs concerning utilization of CPU time
vs. I/O resources, four dynamic tunables are available to customize the behavior of this thread pool:
aio_proc_threads
, aio_proc_thread_pct, aio_req_per_thread
, and
aio_monitor_run_sec
. Please see individual manpages for details on each of these tunables.
The tunable
aio_monitor_run_sec
specifies how frequently a process AIO thread pool will be moni-
tored. Monitoring involves making decisions about growing or shrinking the AIO thread pool based on the
constraints specified by
aio_proc_threads
, aio_proc_thread_pct, and
aio_req_per_thread
.
Note that although the AIO thread pool can grow both on its own (as new I/Os are issued) or as a result of
the monitoring mechanism, the monitoring mechanism is the primary method by which the thread pool can
shrink. So this tunable effectively determines how quickly the AIO thread pool will adapt itself to a given
I/O load.
Who Is Expected to Change This Tunable?
System administrators that run applications requiring heavy usage of POSIX AIO to filesystems.
Restrictions on Changing
This tunable is dynamic. Changes to to this tunable take effect immediately for new processes started after
the change. They also impact existing processes, but the speed with which the changes propagate to run-
ning processes is determined by the former value of
aio_monitor_run_sec
.
When Should the Value of This Tunable Be Raised?
aio_monitor_run_sec
should be raised for applications that have steady I/O loads for which POSIX
AIO would rarely need to adapt. Another possibility is applications with bursty or periodic I/O loads, that
want POSIX AIO to maintain a larger thread pool through periods of decreased I/O activity (to be ready for
busier periods). This can be accomplished by increasing this tunable to reduce the frequency of AIO moni-
tor updates.
What Are the Side Effects of Raising the Value of This Tunable?
Increasing this tunable will reduce the speed with which the POSIX AIO thread pool mechanism adapts
itself to changing I/O loads. This could cause slightly reduced performance when applications first begin to
issue POSIX AIOs.
When Should the Value of This Tunable Be Lowered?
aio_monitor_run_sec should be lowered when applications want to increase the speed with which
the POSIX AIO thread pool adapts itself to I/O loads. This should generally maximize performance, except
in the case of bursty I/O loads, or I/O loads with periodic peaks, for which a slower adaptation may be desir-
able.
46 Hewlett-Packard Company 1 HP-UX 11i Version 3: February 2007